我有一個執行順序邏輯的任務,我想停止執行其他任務的邏輯。有沒有辦法做到這一點,而不會導致會合? 如何暫停任務? 在此先感謝。如何緊急通知Ada的任務?
1
A
回答
3
您可以使用Asynchronous Transfer of Control並將要停止的部分放入abortable_part,或直接使用abort來終止任務。
如果你使用GNAT,你可以看看GNAT.Tasking包。
2
通常最好用「檢查點」(比如受保護的對象標誌)來構造順序邏輯,在這裏可以進行簡短的測試以查看是否有信號中止。受保護的對象被設計成一個輕量級的併發機制來支持這種快速測試。
是不是真的需要可中斷任何指向語句序列?完成一個語句塊或迭代所需的額外微或毫秒數的成本是多少,並且做一個標誌檢查真的是不可接受的?您預計多久需要中止處理順序?
有一個定義好的檢查點來檢測信號是否過早地終止處理,可以確保序列以已知狀態退出,這有助於驗證正確的操作並在出現錯誤時進行調試。
1
您可能會考慮通過在protected object內部實現該操作或數據來保護該操作或數據。
這聽起來像你正在尋找某種鎖定方案。用Ada保護對象實現各種不同的鎖定方案是相當容易的,這樣就不需要在特定任務之間進行明確的握手。
相關問題
- 1. 緊急呼叫
- 2. APNS適用性和可靠性的緊急通知
- 3. 與AVR-ADA任務
- 4. 如何在ada包中聲明任務?
- 5. Ada的任務和安全
- 6. 什麼是「緊急數據」?
- 7. 針對緊急呼叫(911)或緊急呼叫模式的Android標準行爲
- 8. Ada任務和終止
- 9. 通知/任務欄
- 10. 如何顯示任務欄通知?
- 11. 選擇mysql的緊急觸發器
- 12. 的Mac PGP WDE緊急恢復過程
- 13. 任務欄緊湊模式?
- 14. AsyncSocket和CFSocket,如何設置TCP的緊急標誌?
- 15. 如何關閉JFrame的窗口管理器緊急提示?
- 16. Ada任務:任務條目中的指針
- 17. 如何備份VPS服務器?並在緊急情況下恢復它?
- 18. 在Android 2.1中撥打緊急電話
- 19. 緊急電話號碼檢測
- 20. Python - 發送緊急數據(tcp)
- 21. ASP.NET緊急關機和重定向
- 22. Centos 7緊急模式無限錯誤
- 23. 信息,當用戶在緊急號碼
- 24. Android TCP緊急消息實現
- 25. Beautifulsoup蟒蛇錯誤(10060)緊急
- 26. 實體框架4和緊急系統
- 27. UITextView檢測緊急電話號碼(112)
- 28. 的Javascript/jQuery的緊密通知淡出
- 29. 如果作業失敗,通知操作員任務與通知
- 30. android如何獲得撥打緊急號碼
您可能希望提供更多詳細信息,然後人們可以在此處做出明智的回覆。 – NWS