主なスキルとコンセプト
• 複数のスレッド作成の基本を理解する
• Thread クラスと Runnable
インターフェイスについて理解する
• スレッドを作成します
• 複数のスレッドを作成します
• スレッドがいつ終了するかを決定する
• スレッドの優先順位を使用する
• スレッド同期を理解する
• 同期メソッドを使用する
• 同期ブロックを使用する
• スレッド間の通信を促進する
• スレッドの一時停止、再開、停止
スレッド: これらは、プログラム内の独立した実行パスです。
マルチタスク: プロセス (複数のプログラム) またはスレッド (同じプログラム内の複数のタスク) に基づいて実行できます。
利点:
空き時間を利用すると効率が上がります。
マルチコア/マルチプロセッサ システムをより有効に活用します。
スレッドの作成と管理
クラスとインターフェース:
スレッド: スレッドをカプセル化するクラス。
実行可能: カスタム スレッドを定義するために使用されるインターフェイス。
共通スレッド クラス メソッド:
スレッドの作成:
class MyThread implements Runnable { String threadName; MyThread(String name) { threadName = name; } public void run() { System.out.println(threadName + " starting."); try { for (int i = 0; i < 10; i++) { Thread.sleep(400); System.out.println("In " + threadName + ", count is " + i); } } catch (InterruptedException e) { System.out.println(threadName + " interrupted."); } System.out.println(threadName + " terminating."); } } public class UseThreads { public static void main(String[] args) { System.out.println("Main thread starting."); MyThread myThread = new MyThread("Child #1"); Thread thread = new Thread(myThread); thread.start(); for (int i = 0; i < 50; i++) { System.out.print("."); try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Main thread interrupted."); } } System.out.println("Main thread ending."); } }
期待される出力:
Main thread starting. . Child #1 starting. .. In Child #1, count is 0 ... In Child #1, count is 1 ... Main thread ending.
スレッドクラス拡張:
class MyThread extends Thread { MyThread(String name) { super(name); } public void run() { System.out.println(getName() + " starting."); try { for (int i = 0; i < 10; i++) { Thread.sleep(400); System.out.println("In " + getName() + ", count is " + i); } } catch (InterruptedException e) { System.out.println(getName() + " interrupted."); } System.out.println(getName() + " terminating."); } } public class UseThreads { public static void main(String[] args) { System.out.println("Main thread starting."); MyThread thread = new MyThread("Child #1"); thread.start(); for (int i = 0; i < 50; i++) { System.out.print("."); try { Thread.sleep(100); } catch (InterruptedException e) { System.out.println("Main thread interrupted."); } } System.out.println("Main thread ending."); } }
注: sleep() メソッドは、呼び出されたスレッドの実行を一時停止します
指定されたミリ秒期間の間。
ブックテーブル
以上が複数のスレッドを使用したキャッププログラミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。