我有多個進程監視MSMQ隊列。我想先執行多步操作,如先查看消息,然後根據某些標準接收消息。單個消息可能會傳遞多個進程的接收標準,以便多個進程可能嘗試接收相同的消息。這些操作是否是線程安全的?如果不是,我應該怎麼做,以防止一個進程未能收到其他進程已經收到的消息?MSMQ線程安全嗎?
7
A
回答
5
操作本身是線程安全的。但是,如果執行多步驟操作,則可能發現結果不一致(例如,查看數據是否在隊列中,然後調用接收數據,僅發現它不再存在)。
14
6
您可能感興趣的文章blog entry我寫過這個話題。
總之,MSMQ C++ API是線程安全的,但不是所有的System.Messaging方法都是線程安全的。在博客文章中,我將討論如何以線程安全的方式調用MessageQueue.Send。
相關問題
- 1. java線程安全:線程安全嗎?
- 2. Spring mongoTemplate線程安全嗎?
- 3. Lparallel.queue線程安全嗎?
- 4. BoxClient線程安全嗎?
- 5. EventHubClient.SendBatchAsync - 線程安全嗎?
- 6. .NET:JsonMediaTypeFormatter線程安全嗎?
- 7. multiset equal_range線程安全嗎?
- 8. pip線程安全嗎?
- 9. com.google.cloud.datastore.Datastore線程安全嗎?
- 10. WNetGetResourceInformation線程安全嗎?
- 11. qsort線程安全嗎?
- 12. work_queue線程安全嗎?
- 13. .NET DateTime線程安全嗎
- 14. DynamoDBContext線程安全嗎?
- 15. 在Python線程安全嗎?
- 16. java.lang.reflect.Method線程安全嗎?
- 17. HttpContext.Current.Cache線程安全嗎?
- 18. UIFont線程安全嗎?
- 19. C#+ =線程安全嗎?
- 20. Go bytes.Buffer線程安全嗎?
- 21. SynchronizationContext.Post()線程安全嗎?
- 22. Guava Table線程安全嗎?
- 23. EPiServer線程安全嗎?
- 24. 是java.sql.Connection線程安全嗎?
- 25. 是CreateChildContainer()線程安全嗎?
- 26. 是Thread.getStackTrace()線程安全嗎?
- 27. Windows'rand_s線程安全嗎?
- 28. 是DocumentBuilder.parse()線程安全嗎?
- 29. 是javax.sql.DataSource線程安全嗎?
- 30. putStrLn線程安全嗎?
請注意:從.NET Framework 4開始,根據MSDN的說法,「只有GetAllMessages方法是線程安全的」。我建議更新答案以反映這一點,這樣讀者就不會感到困惑。 – Iravanchi 2014-10-01 13:31:03