2017-05-06 30 views

回答

0

「畢其功於一役」只有在實時環境下才有意義,而「給定的時間間隔內」的意思。您演示的程序在大多數情況下會在相對較短的時間間隔內啓動全部3個線程,但有時,在主線程被搶佔時,此間隔可能很大。即使主線程不間斷地執行,所有3個線程開始實際執行的真實時間也不盡相同。首先,你的機器是否有3個物理處理器來運行線程?如果是,他們是否自由或被其他流程佔用?在你的線程開始後,很快他們就可以從處理器中被剝奪了 - 對於你來說和他們開始的時刻一樣重要嗎?您會發現,實際執行過程可能會發生太多變化,並且很難保證您的線程「立即」啓動或在理想的時間間隔內完成。你可以運行你的程序數百次,但這並不能證明它將始終如期工作。 所以,如果你真的想確保你的線程「立刻」開始,請學習"Real time programming"。請記住,實時編程並不是如何製作快速程序,而是如何製作確保在給定時間間隔內完成其工作的程序。