2016-06-01 6 views
0

以下のコードが待つか、ブロックの実行をスキップする場合、私は、は、iosの別のスレッドが完了するまでロック待機を同期させますか?

synchronized(lock) 
{ 
    //Do something... 
    //... 
    //... 
    //... 
} 

を混乱していますそして、それは、同期のためのパラメータとしてブール値を使用することは可能でしょうか?ミューテックスロックとは何ですか? 待機するつもりがない場合、その唯一の目的は、コード・ステートメントをスレッド・セーフにし、クリティカル・セクション・ベースのアクセスのみにすることですか?

+0

これはあなたの質問に対する回答ではありませんが、gcd(Grand Central Dispatch)をご覧ください。スレッド化されたコードのすべての面で本当に役立ちます。 –

答えて

2

@synchronizedは、ロックが利用可能になるまで待機します。これは、コードブロックの周りにクリティカルセクションを宣言します。マルチスレッド化されたコードでは、@synchronizedは、ある時点でブロック内のコードを1つのスレッドしか実行できないことを保証します。

+0

ロックが解除された後、ブロックが実行されますか? Nslock変数の代わりにブール値を使用する方法はありますか? –

+0

はい。そのクリティカルセクションを取得/ロックして実行できるようになるまで待つ –

+0

「ブール値を使用する」という意味を理解していません –

関連する問題