3
编辑:实际上发生的事情是我在程序员的记事本中运行它,它等待程序完成之后捕获标准输出并将其打印到控制台,然后我从它的工作作为预期。这种行为是显而易见的,也是我所期望的,我只是没有意识到我正在程序员的记事本中运行程序,而不像我通常那样运行程序。我的错。奇怪的Python线程行为
我与Python线程玩,但遇到了这个奇怪的问题在那里,如果我有一个打印语句和回调函数内1秒的睡眠声明,它不这样做的打印,直到的总和睡眠时间已过。
这里是导致这种行为的代码:
import threading
import time
def callback():
for i in range(3):
print "Hello, World!";
time.sleep(1)
myThread = threading.Thread (
target = callback,
args = []
)
myThread.start()
这是我想它的行为:
public class Demo
{
public static void main(String[] args)
{
(new Thread(() -> {
for (int i = 0; i < 3; ++i) {
System.out.println("Hello, World!");
try {
Thread.sleep(1000);
} catch(Exception e){
// rethrow as an unchecked exception but do not silence it.
throw (RuntimeException)e;
}
}
})).start();
}
}
是什么原因造成的Python到这样的行为,我怎么能得到它的行为如同我期望的那样?
我无法重现你的问题。这些对我来说都完全一样。他们每个打印你好,世界!然后等一下,三次。他们的表现如何? – user3030010
对我来说程序暂停3秒,然后打印Hello world 3次O.o – Dmitry
等等,现在它工作正常,我没有更改代码...我很困惑。 – Dmitry