Javaのマルチスレッドの進化の歴史[訳]

読者の一つは、Anantは最近、非常に良い質問をしました。彼は、私たちは、マルチスレッドなどでJava 8の変化について知っておくべきすべてのトピックの/リストを詳しく説明したいと考えています。(初心者から上級者まで)。彼は単純なものからJavaのマルチスレッドフレームワーク知りたいと思っRunnableたJava 8の最新機能への進化の過程インタフェースを。私たちは彼の要求を解決しましょう。

私は情報を収集するために多くの時間を費やしました。あなたが他のビューを持っているのであれば、お気軽にお尋ねください。

JDKリリースマルチスレッドの概念

それぞれについて1.1 JDKのバージョン、いくつかのマルチスレッド関連クラスのオリジナルバージョン。具体的には、クラス/インタフェースは、次のように

  • java.lang.Thread
  • java.lang.ThreadGroup
  • java.lang.Runnable
  • java.lang.Process
  • java.lang.ThreadDeath

次のようないくつかの珍しいカテゴリ

  1. java.lang.IllegalMonitorStateException
  2. java.lang.IllegalStateException
  3. java.lang.IllegalThreadStateException.

同様に、同期のコレクションとして。例えば:java.util.Hashtable

JDK 1.2およびJDK 1.3は、マルチスレッドに関して有意な変化は認められませんでした。(私が何かを逃した場合、私を修正してください)

JDK 1.4は、 JVMレベルの変更の一部で発生しています。これは、マルチスレッドサスペンド/レジュームする単一の呼び出しを使用することができます。しかし、それは、APIに大きな変化を生じませんでした。

JDK 1.5であるJDK 1.1の後の最初のメジャーリリース、それは複数の同時ツールキットが含まれています。Executorsemaphoremutexbarrierlatchesconcurrent collectionsそしてblocking queues、バージョンのJavaスレッド・アプリケーションの多くで最大の変化。

阅读完整变化: http://docs.oracle.com/javase/1.5.0/docs/guide/concurrency/overview.html

JDK 1.6は多くのプラットフォームではなく、修理APIのアップグレードの詳細です。

JDK 1.7はのためのサポート導入されましたForkJoinPoolサポートを。これは、実装作業を盗む手法を、スループットを最大化します。Phaserクラスもで追加されました。

JDK 1.8は、ラムダは広く知られているが、それはまた、同時変更についての何かを持っているので。二つの新しいインタフェースと4つの新しいクラスがに追加されたjava.util.concurrentパッケージ。たとえば、次のようにCompletableFutureCompletionException

ベース高めるためにはストリームの施設ラムダ式フレームに主要な変更java8を受けて設定し、これらの新機能、の重合操作を、これは多数の方法の結果は、ほぼすべてのコレクションクラスのに追加され、もちろん、複雑なのセットが含まれています。

阅读完整变化: http://docs.oracle.com/javase/8/docs/technotes/guides/concurrency/changes8.html

関連ガイドライン

私は、上記のものは、あなたがJDKのマルチスレッド版の特性を理解するのに役立ちます願っています。

おすすめ

転載: juejin.im/post/5d01fdbbf265da1ba647e6ce