我正在使用boost :: thread來處理隊列中的消息。 當第一條消息到來時,我啓動一個消息處理線程。 當第二條消息到來時,我檢查消息處理線程是否完成。我如何知道升壓線程是否完成?
如果這樣做我開始一個新的 如果沒有完成我什麼也沒做。
如何知道線程是否完成?我試着用joinable(),但它不工作,因爲當線程完成時,它仍然可以連接。
我也嘗試立即中斷這個過程,並在我的線程末尾添加一箇中斷點,但它不起作用。
感謝
編輯:
我想有我線程睡一個不確定的時間,醒來時,信號被觸發。
平均要做到這一點是提高:: condition_variable
我的想法是隻有一個處理線程。當它完成處理時,我希望它能夠睡眠,並且一旦有新消息到來就能夠喚醒它。你知道如何做到這一點與提升? – Arthur 2010-05-11 06:36:17
你會想要一個生產者 - 消費者隊列。看到我上面的附錄。 – 2010-05-11 14:25:48
我很瞭解生產者 - 消費者模式。我需要的是一種喚醒事件上線程的方法(當緩衝區不再空時)。我不知道有什麼辦法做到這一點。 – Arthur 2010-05-12 14:46:30