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