タグ付けされた質問 「java.util.concurrent」

10
同期とロック
java.util.concurrentAPIはと呼ばれるクラスを提供しますLock。これは基本的に、重要なリソースにアクセスするためにコントロールをシリアル化します。park()およびなどのメソッドを提供しunpark()ます。 synchronizedキーワードとusing wait()およびmethodを使用できれば、同様のことができますnotify() notifyAll()。 これらのうちどれが実際に優れているのか、なぜですか?

8
Javaにミューテックスはありますか?
JavaのMutexオブジェクトまたはそれを作成する方法はありますか?1つの許可で初期化されたSemaphoreオブジェクトが役に立たないので、私は尋ねています。このケースを考えてみましょう: try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Exception e) { semaphore.release(); } 最初の取得で例外が発生した場合、catchブロックでの解放により許可が増加し、セマフォはバイナリセマフォではなくなります。 正しい方法はありますか? try { semaphore.acquire(); //do stuff } catch (Exception e) { //exception stuff } finally { semaphore.release(); } 上記のコードはセマフォがバイナリであることを保証しますか?

3
FixedThreadPoolとCachedThreadPool:2つの悪の小さい方
たくさんのタスクを実行するスレッド(約5〜150)を生成するプログラムがあります。もともと、私が使用しFixedThreadPoolているため、この類似した質問は、彼らがより良い、より長い寿命のタスクに適した提案とマルチスレッドの私の非常に限られた知識で、私は、スレッド(数分)の平均寿命は「とみなさ長く住んでいました」。 ただし、最近、追加のスレッドを生成する機能を追加しました。これにより、設定したスレッド制限を超えてしまいます。この場合、許可できるスレッドの数を推測して増やすか、スレッドをCachedThreadPool無駄にしないように切り替える方が良いでしょうか? 両方試してみて、違いはないようですのでCachedThreadPool、ムダを避けるためだけに行きたいと思います。ただし、スレッドの寿命は、代わりにを選択FixedThreadPoolして未使用のスレッドを処理する必要があることを意味しますか?この質問では、これらの余分なスレッドが無駄になっていないように見えますが、明確にしていただければ幸いです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.