Javaにマルチスレッドを実装する3つの方法
Javaでは、マルチスレッドを実装する3つの方法があります。最初の方法:スレッドクラスを継承し、実行関数をオーバーライドします。 2番目の方法:実行可能なインターフェイスを実装し、実行関数を書き直します。 3番目の方法:呼び出し可能なインターフェイスを実装し、コール関数をオーバーライドします。この記事では、これらの3つの方法を例から実装する方法について説明します。必要な場合は、参照してください。
(1)スレッドクラスを継承し、実行関数をオーバーライドします。
クラスxxはスレッドを拡張します{public void run(){thread.sleep(1000)//スレッドは1000ミリ秒間眠り、睡眠はスレッドがブロック状態に入り、リソースをリリースします}}}スレッドを開始:
object.start()//スレッドを起動し、実行関数を実行します
(2)実行可能なインターフェイスを実装します、コードは次のとおりです
クラスMythReadはrunnable {private string name; public mythread(string name){super(); this.name = name; } @Override public void run(){for(int i = 0; i <200; i ++){system.out.println( "thread"+name+"--->"+i); }}} public class threaddemo {public static void main(string [] args){mythread a = new mythread( "a"); mythread b = new mythread( "b"); mythread c = new mythread( "c");新しいスレッド(a).start();新しいスレッド(b).start();新しいスレッド(c).start(); }}(3)呼び出し可能なインターフェイスを実装し、コール機能を書き直します
Callableは、Runnableに似たインターフェイスです。呼び出し可能なインターフェイスを実装するクラスと実行可能なクラスは、他のスレッドで実行できるタスクです。
CallableとRunnableにはいくつかの違いがあります。
Java Callable Codeの例:
クラスタスクウィットレッストは、<string> {private int id; public taskwithResult(int id){this.id = id; } @Override public String call()throws Exception {return "taskwithResult" + id; }} public class callabletest {public static void main(string [] args)throws arturtedexception、executionexception {executorservice execos = executors.newcachedthreadpool(); arrayList <future <string >> results = new ArrayList <Future <String >>(); //将来は、(int i = 0; i <10; i ++){results.add(exec.submit(new taskwithResult(i)))の実行者実行の結果を保存するために使用されるコンテナに相当します。 } for(future <string> fs:results){if(fs.isdone()){system.out.println(fs.get()); } else {system.out.println( "将来の結果はまだ完了していません"); }} exec.shutdown(); }}読んでくれてありがとう、私はそれがあなたを助けることができることを願っています。このサイトへのご支援ありがとうございます!