Javaスレッドの安全な常用タイプ。動力ノードJava学院の整理


スレッドセキュリティクラス
集合フレームの中には、いくつかのクラスがスレッドセキュリティであり、これらはjdk 1.1の中のものである。jdk 1.2の後に、多くの非スレッドの安全なクラスが現れます。以下はこれらのスレッドの安全な同期のクラスです。
vector:arraylistよりも多くの同期化機構(スレッドセキュリティ)があります。効率が低いので、今はあまり推奨されていません。webアプリケーションでは、特にフロントページの場合、効率(ページ応答速度)が優先されます。
statck:スタック類、先進後出
hashtable:hashmapよりスレッドが多くなりました。安全です。
これらを除いて,他の集合はほとんど非スレッドセキュリティのクラスとインターフェースである。
スレッドセキュリティのクラスは、同期しています。毎回1つしかアクセスできません。ヘビー級のオブジェクトで、効率が低いです。
その他:
1.hashtableとhashmapの違い
hashtableはスレッドが安全であり、hashtableの方法は同期機構を提供しています。hashmapはスレッドセキュリティではなく、同期機構を提供しない。hashtableは空の値を挿入してはいけません。hashmapは許可します。
2.マルチスレッドを同時に修正してセットをどうすればいいですか?
古いVector/Hashtable類で
StringBufferはスレッドの安全性ですが、StringBuiderはスレッドが安全ではありません。セキュリティとセキュリティについて深く理解していない場合は、StringBufferの動作はスレッドで安全であると錯覚しがちですが、Javaが保証するスレッドの安全は、このオブジェクト自体のマルチコールではなく、その方法が実行されるということです。以下の例を見ると、StringBufferTestには拡張用のデータメンバーcontetsがあります。その一回のappedはスレッドが安全ですが、多くのappedの組み合わせはスレッドが安全ではありません。この出力結果はあまり制御できませんが、logとgetContitメソッドにキーワードsynchronizedを加えれば、結果は非常に合理的になります。StringBuiderを半分にすると、他のこのベースで動作するスレッドも作られます。
以上、小编で绍介したJavaスレッドの安全な常用タイプです。動力ノードJava学院は整理して、みんなに助けがあることを望んで、もしみんなはいかなる疑問があるならば、メッセージを下さい。ここでも私たちのサイトを応援してくれてありがとうございます。