synchronize2.java

来自「java技术内幕源代码,配合书籍看有事半功倍的效果」· Java 代码 · 共 53 行

JAVA
53
字号
class synchronize2 
{
    public static void main(String args[]) 
    {
        Shared shared = new Shared();

        CustomThread thread1 = new CustomThread(shared, "one");
        CustomThread thread2 = new CustomThread(shared, "two");
        CustomThread thread3 = new CustomThread(shared, "three");
        CustomThread thread4 = new CustomThread(shared, "four");

        try {
            thread1.join();
            thread2.join();
            thread3.join();
            thread4.join();
        } catch(InterruptedException e) {}
    }
}

class CustomThread extends Thread
{
    Shared shared;

    public CustomThread(Shared shared, String string) 
    {
        super(string);
        this.shared = shared;
        start();
    }

    public void run() {
        synchronized(shared) { 
            shared.doWork(Thread.currentThread().getName());
        }
    }
}

class Shared 
{
    void doWork(String string) 
    {
        System.out.println("Starting " + string);

        try {
            Thread.sleep((long) (Math.random() * 500));
        } catch (InterruptedException e) {}

        System.out.println("Ending " + string);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?