前の記事では、Java Multi-Threadingの実装方法を紹介しました。
まず第一に、マルチスレッドの利点と短所を教えてください
マルチスレッドの利点:
1)より良いリソース利用
2)プログラミングは、場合によってはより簡単です
3)プログラムはより速く応答します
マルチスレッドのコスト:
1)より複雑なデザイン
一部のマルチスレッドアプリケーションは、単一スレッドアプリケーションよりも簡単ですが、一般に複雑なものもあります。コードのこの部分は、複数のスレッドを介して共有データにアクセスするときに特別な注意が必要です。スレッド間の相互作用はしばしば非常に複雑です。誤ったスレッドの同期によって生成されるエラーは、検出して再現するのが非常に困難です。
2)コンテキストスイッチングのオーバーヘッド
CPUが1つのスレッドの実行から別のスレッドの実行に切り替えた場合、最初に現在のスレッド、プログラムポインターなどのローカルデータを保存し、別のスレッド、プログラムポインターなどのローカルデータをロードし、最後に開始する必要があります。実行。このスイッチングは「コンテキストスイッチ」と呼ばれます。 CPUは1つのコンテキストでスレッドを実行し、別のコンテキストに切り替えて別のスレッドを実行します。コンテキストの切り替えは安くありません。必要でない場合は、コンテキストの切り替えを減らす必要があります。
スレッドを定義および開始するための2つの重要なテクノロジーがあります。
最初:スレッドクラスはjava.lang.runnableインターフェイスを実装するか、java.lang.threadクラスを継承する必要があります。どちらも実行方法を実装する必要があります。ここでは、実行方法には入力も出力も、例外もありません。
2番目:スレッドクラスの開始方法を呼び出して、CPUリソースを取得した後、スレッド実行メソッドを自動的に呼び出して実行を開始します。
パッケージテスト; Import java.util.vector; import java.util.date;/***スレッドテストインスタンス* @authorまだ流れている**/public class threadnew {/**** @authorまだ水の流れ*** / class threads {private date runtime; system.out.println( ") ;)/** * @authorは、runnable {private void run() date(); * */public void starchb = new thread = new Thread(); [] args){threadnew = new StreadNew();