Java使用synchronized實現(xiàn)互斥鎖功能示例
本文實例講述了Java使用synchronized實現(xiàn)互斥鎖功能。分享給大家供大家參考,具體如下:
代碼
package per.thread; import java.io.IOException; public class Test { private int i = 0; private Object object = new Object(); public static void main(String[] args) throws IOException { Test test = new Test(); Test.MyThread thread1 = test.new MyThread(); Test.MyThread thread2 = test.new MyThread(); thread1.start(); thread2.start(); } class MyThread extends Thread{ @Override public void run() { synchronized (object) { i++; System.out.println("i:"+i); try { System.out.println("線程"+Thread.currentThread().getName()+"進入睡眠狀態(tài)"); Thread.currentThread().sleep(10000); } catch (InterruptedException e) { // TODO: handle exception } System.out.println("線程"+Thread.currentThread().getName()+"睡眠結(jié)束"); i++; System.out.println("i:"+i); } } } }
實現(xiàn)
i:1
線程Thread-0進入睡眠狀態(tài)
線程Thread-0睡眠結(jié)束
i:2
i:3
線程Thread-1進入睡眠狀態(tài)
線程Thread-1睡眠結(jié)束
i:4
分析
在thread1休眠之后,thread2沒有立即執(zhí)行,因為給object加了synchronized。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java進程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
SpringMVC自定義消息轉(zhuǎn)換器的使用其實很簡單
這篇文章主要介紹了SpringMVC自定義消息轉(zhuǎn)換器的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07