Java 線程小記(一)

線程(在進程中獨立運行的子任務)
單線程 特色:排隊執行(必須上一個任務執行完畢才能執行下一個任務),也就是同步。
多線程 特色:異步,CPU在多個任務之間來回切換。
(多線程是異步的,線程被調用的時機是隨機的。)安全

實例變量(線程安全)
多線程操做的數據是否共享多線程

非共享實例(多個線程非訪問不一樣一個實例變量)(代碼以下)異步

public class TestXC
{
    public static void main(String[] args) {
        MyThread a = new MyThread("售票口一");
        MyThread b = new MyThread("售票口二");
        MyThread c = new MyThread("售票口三");
        a.start();
        b.start();
        c.start();
    }
}
class MyThread extends Thread
{
    private int count = 5;
    public MyThread(String name) {
        super();
        // 設置線程名稱
        this.setName(name);
    }
    public void run() {
        super.run();
        while (count > 0) {
            count--;
            System.out.println("由" + this.currentThread().getName() + "賣出一張票,票數還剩餘" + count);
        }
    }
}this

 

共享實例以下線程

public class TestXC
{
    public static void main(String[] args) {
        MyThread a = new MyThread();
        Thread t1 = new Thread(a, "售票口一");
        Thread t2 = new Thread(a, "售票口二");
        Thread t3 = new Thread(a, "售票口三");
        Thread t4 = new Thread(a, "售票口四");
        Thread t5 = new Thread(a, "售票口五");
        t1.start();
        t2.start();
        t3.start();
        t4.start();
        t5.start();
    }
}
class MyThread extends Thread
{
    private int count = 5;進程

    public void run() {
        super.run();
        count--;
        System.out.println("由" + this.currentThread().getName() + "賣出一張票,票數還剩餘" + count);
    }
}get

保證多個線程操做的是同一個count同步

相關文章
相關標籤/搜索