在軟件中,事務性內存方案是多線程編程的一種操作過程,它使用的事務與數據庫使用的事務非常相似。當兩個或多個線程試圖同時訪問同一數據時,許多不同的不良情況可能導致程序的結果取決于線程訪問順序。通常需要一個順序,在...
在軟件中,事務性內存方案是多線程編程的一種操作過程,它使用的事務與數據庫使用的事務非常相似。當兩個或多個線程試圖同時訪問同一數據時,許多不同的不良情況可能導致程序的結果取決于線程訪問順序。通常需要一個順序,在多線程中,鎖是確保一次只有一個線程可以訪問特定資源的最主要和最簡單的方法。手持計算機這種事務性內存的方法在多線程處理中包含與鎖有關的多個問題。如果發生某種意外錯誤,鎖可能會成為永久性的,鎖會帶來不可預測的并發問題,比如死鎖或優先級反轉,由于鎖的粒度非常細,另一個問題包括代碼最終在鎖定、上下文切換和,和解鎖。這是一個關鍵問題,因為它可能導致代碼在這些操作上花費的時間比在程序中執行其他重要工作上的時間要長。相反,粗粒度鎖會導致處理性能下降和并發性降低。事務內存中的問題由高級鎖解決,包括來自C#的“鎖塊”、讀寫鎖、寫屏障等。事務性內存的主要優先事項之一是沒有鎖,也沒有不必要的鎖處理時間。通常認為,如果操作不需要互斥,共享的數據結構就沒有鎖。數據結構事務內存一致性與一致性(TCC)模型是一種新的、被提出的共享內存模型根據該模型,原子事務始終是以下基本單元:并行工作、內存一致性、通信和內存引用的一致性。TCC模型還通過消除使用標準鎖或信號量的同步,簡化了并行軟件。通過硬件,TCC還結合了每一次寫入從事務發生的每個區域到一個數據包,以原子方式將數據包廣播到永久共享的內存狀態。除了簡化的一致性硬件外,這意味著所需的低休眠消息減少,并且完全消除了某些標準一致性協議
-
發表于 2020-08-07 18:12
- 閱讀 ( 879 )
- 分類:電腦網絡