1. 程式人生 > >Java 學習筆記之 線程安全

Java 學習筆記之 線程安全

div ora mage 線程安全 cnblogs cor exception rup ron

線程安全:

線程安全的方法一定是排隊運行的。

public class SyncObject {
    synchronized public void methodA() {
        try {
            System.out.println("begin methodA threadName = " +
                    Thread.currentThread().getName());
            Thread.sleep(5000);
            System.out.println("end");
        } 
catch (InterruptedException e) { e.printStackTrace(); } } } public class SyncThreadA extends Thread{ private SyncObject object; public SyncThreadA(SyncObject object) { this.object = object; } @Override public void run() {
super.run(); object.methodA(); } } public class SyncThreadB extends Thread{ private SyncObject object; public SyncThreadB(SyncObject object) { this.object = object; } @Override public void run() { super.run(); object.methodA(); } }
public class ThreadRunMain { public static void main(String[] args) { testSyncThread(); } public static void testSyncThread(){ SyncObject object = new SyncObject(); SyncThreadA a = new SyncThreadA(object); a.setName("A"); SyncThreadB b = new SyncThreadB(object); b.setName("B"); a.start(); b.start(); } }

運行結果:

技術分享

如果去掉synchronized,運行結果:

技術分享

Java 學習筆記之 線程安全