2014-04-29 77 views
-7

在開發類時應該添加線程安全機制,並且知道此類將在多線程環境中使用(但並非總是如此)或將其留給用戶?類應該是線程安全的嗎?

+2

我們不會無故製造防彈坦克。時間就是金錢。 – SQLMason

+0

你是什麼意思「多線程環境」?在同一個程序中? –

+0

嗯,你的意思是'線程安全的',因爲內部鎖定可以安全地使用多個線程,或者'線程安全',因爲不使用靜態線程,因此每個線程都可以安全地創建和使用它們自己的對象實例/ s,還是什麼? –

回答

2

作爲一般規則,將其留給用戶更爲靈活。例如,考慮一個地圖類型的容器。假設應用程序需要以原子方式將某個地圖從某個地圖移動到另一個地圖。在這種情況下,用戶需要在插入 - 擦除序列之前鎖定兩個映射。

有這樣一個場景會被你的課程自動照顧,可能會不雅觀,因爲它自然會發生跨對象的事情,並且可能會有很多這樣的場景,每個場景稍有不同。

相關問題