我需要一些幫助來了解Azure CloudBlobClient,CloudQueueClient和CloudBlob類中的線程安全性。Azure Blob和隊列線程安全
我正在開發一個包含多個獨立作業處理器的工作者角色,其中每個作業處理器都從特定的隊列中讀取數據,並向某些可能相同的blob容器進行寫入/更新。
我想確保這些作業處理器不會踩在彼此的腳趾上。
1>如何確保沒有使用任何類型的鎖就是這種情況?如果我將一個單獨的CloudBlobClient和CloudQueueClient分配給每個作業處理器(都位於同一進程中),是否足以說它們彼此獨立,並且因爲每個作業處理器都使用單獨的客戶端實例,所以它們將不會運行相互依賴?如果我嘗試在使用Parallel.ForEach的CloudBlobClient上並行執行並行調用GetBlobReference或UploadText,是否需要合併某種同步或者這些方法是否線程安全? Azure文檔說,他們不是但我在網上看到的大多數例子似乎都沒有對這些方法應用任何類型的同步機制。達到此目的的最佳方法是什麼?我的意思是使用一個CloudBlobClient並行調用GetBlobReference或UploadText的最佳方式?
但我有點同意奧利弗,因爲這是更多的鍋爐評論。我找不到任何報告的問題,除非您使用的ParallelOperationThreadCount高於1。如果我不需要,我寧願不鎖定代碼。 – iCode 2011-05-17 02:22:38
您幾乎在框架中的每個類都會看到關於線程安全性的評論。庫使用ParallelOperationThreadCount在內部創建線程,所以這不應該影響你在做什麼。客戶端類創建相當輕量級。 – knightpfhor 2011-05-17 03:16:51