2011-10-24 55 views
1

我有一個執行順序邏輯的任務,我想停止執行其他任務的邏輯。有沒有辦法做到這一點,而不會導致會合? 如何暫停任務? 在此先感謝。如何緊急通知Ada的任務?

+0

您可能希望提供更多詳細信息,然後人們可以在此處做出明智的回覆。 – NWS

回答

2

通常最好用「檢查點」(比如受保護的對象標誌)來構造順序邏輯,在這裏可以進行簡短的測試以查看是否有信號中止。受保護的對象被設計成一個輕量級的併發機制來支持這種快速測試。

是不是真的需要可中斷任何指向語句序列?完成一個語句塊或迭代所需的額外微或毫秒數的成本是多少,並且做一個標誌檢查真的是不可接受的?您預計多久需要中止處理順序?

有一個定義好的檢查點來檢測信號是否過早地終止處理,可以確保序列以已知狀態退出,這有助於驗證正確的操作並在出現錯誤時進行調試。

1

您可能會考慮通過在protected object內部實現該操作或數據來保護該操作或數據。

這聽起來像你正在尋找某種鎖定方案。用Ada保護對象實現各種不同的鎖定方案是相當容易的,這樣就不需要在特定任務之間進行明確的握手。