ラベル Concurrency の投稿を表示しています。 すべての投稿を表示
ラベル Concurrency の投稿を表示しています。 すべての投稿を表示

2007年7月24日火曜日

A Lock-Free Hash Table

Google TeckTalksで見つけた、Lock-FreeなHash Tableのビデオ。



まだみてません。

2004年6月18日金曜日

クリティカルセクションのコスト

クリティカルセクションの実行コストは軽いと聞きますが
実際にどれくらいのコストがかかるのか計測してみました。

::EnterCriticalSection(&crit);


上記のコード2行を実行するのにかかったコストは自分の環境で約400クロックでした。
Pentium4 2.8GHzのCPUですので、時間にするとだいたい140ナノ秒かな?

数値はあまりあてになりませんが、だいぶ軽いですね。

2004年5月26日水曜日

volatile

C++でvolatile修飾子を変数につけるとその変数はスレッドセーフになるという勘違いを今までしていました…

マルチスレッドでの参照カウント

オブジェクトの寿命を管理する手段として参照カウントがあります。
オブジェクトが必要になれば参照カウントをインクリメントし、
不要になればデクリメントします。
どこからも全く必要とされていない場合は参照カウントが0になるのでオブジェクトを破棄することが出来ます。

参照カウントをマルチスレッドで操作する場合は、参照カウントが複数のスレッドから同時に変更されるのを防ぐ必要がありますが、
WindowsのAPIにはそのためのAPIがあります。今日知りました…

InterlockedIncrement
InterlockedDecrement

です。それぞれ、参照カウントを増やしたり減らしたりします。

  © Blogger template 'Isolation' by Ourblogtemplates.com 2008

Back to TOP