首頁 > Java > java教程 > 主體

多執行緒 Cap 編程

Mary-Kate Olsen
發布: 2024-11-22 05:38:17
原創
907 人瀏覽過

主要技能與概念
• 了解建立多執行緒的基礎知識
• 了解 Thread 類別和 Runnable
接口 • 建立一個執行緒
• 建立多個執行緒
• 決定執行緒何時結束
• 使用執行緒優先權
• 了解執行緒同步
• 使用同步方法
• 使用同步區塊
• 促進執行緒之間的通訊
• 暫停、復原和停止執行緒

執行緒:這些是程式內獨立的執行路徑。
多任務:它可以基於進程(多個程式)或執行緒(同一程式中的多個任務)。
優點:
利用空閒時間提高效率。
更好地利用多核心/多處理器系統。

執行緒建立與管理

類別與介面:
Thread:封裝執行緒的類別。
Runnable:用來定義自訂執行緒的介面。

常用執行緒類別方法:

  • getName():傳回執行緒的名稱。
  • getPriority():傳回優先權。
  • isAlive():檢查執行緒是否仍在執行。
  • join():等待執行緒完成。
  • run():定義執行緒的入口點。
  • sleep(long ms):暫停執行緒一段時間。
  • start(): 開始執行緒執行。

建立主題:

  • 實現可運行:
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()方法使得呼叫它的執行緒暫停執行
在指定的毫秒時間內。

書桌
Cap Programação com várias threads

以上是多執行緒 Cap 編程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板