Java使用synchronized實(shí)現(xiàn)互斥鎖功能示例
本文實(shí)例講述了Java使用synchronized實(shí)現(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()+'進(jìn)入睡眠狀態(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); } } }}
實(shí)現(xiàn)
i:1線程Thread-0進(jìn)入睡眠狀態(tài)線程Thread-0睡眠結(jié)束i:2i:3線程Thread-1進(jìn)入睡眠狀態(tài)線程Thread-1睡眠結(jié)束i:4
分析
在thread1休眠之后,thread2沒(méi)有立即執(zhí)行,因?yàn)榻oobject加了synchronized。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java進(jìn)程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能2. CSS可以做的幾個(gè)令你嘆為觀止的實(shí)例分享3. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理4. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法5. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法6. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案7. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁(yè)8. jsp文件下載功能實(shí)現(xiàn)代碼9. JSP之表單提交get和post的區(qū)別詳解及實(shí)例10. jsp+servlet實(shí)現(xiàn)猜數(shù)字游戲
