2017-02-02 4 views
0

私は "rwlocks"、特に "rwlockattr"について質問があります。Pthread:正確に働くrwlockattr

私はいくつかのスレッドで動作するリンクリストを持っています。このリストの各メンバーには「rwlock」があります。だから今私は、書き込みロックにアクセスしたいスレッドがより高い優先順位を持つようにするための規則を設定したいと思う。私の意図は、使用することです

int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t * attr、int pref);

だから今私の質問;リンクされたリスト内のすべての "rwlock"に対して "rwlockattr"を初期化する必要がありますか、グローバル "rwlockattr"を設定して初期化し、 "PTHREAD_RWLOCK_PREFER_WRITER_NP"ルールを設定するだけで十分ですか?

について

+0

単にグローバルなrwlockattrオブジェクトを作成しても何の効果もありません。システムの残りの部分は、そのグローバルを使用する方法も、存在することさえ知ることさえありません。各rwlockを初期化するときは、属性を使用する必要があります。 –

答えて

1

すべてのrwlockには、デフォルトでいくつかの属性が関連付けられています。 pthread_rwlock_init()については、linkを参照してください。これにより、rwlockの使用方法に関する詳細情報が提供されます。

rwlockに1つの属性を割り当てることができます。グローバルに単一の属性を作成し、同じ性質を持つrwlockに割り当てます。

thisを経由しての使用を理解してください。pthread_rwlock

In general Attributes are to decide the nature of your rwlock. 
+0

Ah ok nice thx、btw pthreadのwin32版でこの機能を利用する可能性はありますか?私はunixからwin32に自分のコードを転送しようとしましたが、Pthreadのwin32版ではこれをサポートしていないようですが、これは正しいですか? – JNgoon

+0

win32は、pthreadライブラリをネイティブにサポートしていません。 win32 pthreadingのサポートは、[this](https://www.sourceware.org/pthreads-win32/)のリンクを参照してください。 –

関連する問題