私はスレッドの安全性を学んでおり、オンラインで検索するときに質問に対する明確な答えが見つからないようです。スレッドの外側または内側にロックしますか?
synchronized (lock) {
new Thread() {
public void run() {
// critical section
}
}.start();
}
と、この:
new Thread() {
public void run() {
synchronized (lock) {
// critical section
}
}
}.start();
あなたにコンテキストを与えるために、私は小さな研究室をコーディングだし、アプローチは「1である。この違いや衝撃は何
リクエストごとのスレッド 'というように、メソッドが呼び出されるたびに、上記のいずれかが実行され、'クリティカルセクション 'が自身のスレッドで実行されます。
スレッドの内側か外側にロックがあると影響がありますか?各スレッドはロックを継承しますか、それとも完全にスレッドセーフであるためには各スレッド内になければなりませんか?
最初のものは役に立たない。 – shmosel
'thread.start'の後の最初のリリースロック、' runメソッド 'のすべてのコードを待つことが正しいことはロックを解除する前に終了します – Jerry06
素晴らしい!ありがとう:) – JulioQc