縱觀在C++ 11的新的線程的東西,看它如何輕鬆地映射到並行線程,我注意到在thread
構造區域好奇的部分:在C++ 11中,「不代表執行線程」的線程有什麼意義?
線程();
效果:構造一個不代表執行線程的線程對象。
後續條件: get_id()== id()
拋出: Nothing。
換句話說,一個線程默認的構造函數實際上並不似乎創建一個線程。很顯然,它創建了一個線程對象,,但是如果沒有後備代碼,它到底有用嗎?有沒有其他方式可以將「執行線程」附加到該對象上,如thrd.start()
或類似的東西?
C++ 11嚇唬你和我都在這一點上,幸運的是,我現在是一個內核開發,所以標準不再改變我:) –
我認爲他們的意思是線程構造函數不創建實際的線程,它不調用操作系統,不分配堆棧/其他資源,通常不會創建停止的線程。我認爲這是到位的,所以人們會知道,在啓動它之前創建線程並不會浪費任何東西(除了某些標誌存儲)。 – Dani
@Jesus Ramos:內核開發者害怕標準改變?如果我正確地記得每個新處理器都會在內核中發生某些事情,或者添加一個需要大量重寫才能實現的功能。 – Dani