我想進入與D編程,我遇到了一些問題。我開始使用core.thread Thread類,它爲啓動一個線程提供支持,然後將當前線程加入它。 D似乎希望人們使用消息傳遞,而不是鎖定/同步方法,所以我想我會試一試,但是我看到的每個消息傳遞示例都需要我無法從Thread類獲得的tid。我在網上看到的代碼示例實際上使用了spawn,它返回的是tid而不是使用Thread wrapper,然後使用tid將消息傳遞給Thread。但現在似乎沒有任何方法可以加入到基於其tid的線程中!不僅如此,而且你似乎無法產生一個委託,這就需要我添加不必要的間接級別。D語言 - 線程vs產卵
所以我的問題首先是爲什麼有兩種完全不同的線程風格?第二,爲什麼他們在一起提供幾乎所有你可能需要的東西時都不完整?
那麼當線程結束時,我該如何判斷呢?只要說你有一個沒有做任何事的主體和另一個正在運行的線程。通常我只需要調用thread.join()。如何通過消息傳遞做同樣的事情,因爲main是默認線程,並且沒有tid,因此不能接收任何消息? – Floss 2012-02-29 21:05:41
使用'receive'或'receiveOnly'。 – Bernard 2012-02-29 21:30:16
@Floss在任務完成時發送'Stopped'結構,並對其執行recieveOnly,同時'thisTid'將給出當前線程的tid(即使它還不存在)(包括主線程和任何線程以'Thread.start'開始) – 2012-02-29 21:36:21