更新時(shí)間:2022-10-08 10:42:57 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1479次
Java 中的同步是控制多個(gè)線程對(duì)任何共享資源的訪問(wèn)的能力。
在我們希望只允許一個(gè)線程訪問(wèn)共享資源的情況下,Java線程同步是更好的選擇。
如果您將任何方法聲明為同步,則稱為同步方法。
同步方法用于為任何共享資源鎖定對(duì)象。
當(dāng)線程調(diào)用同步方法時(shí),它會(huì)自動(dòng)獲取該對(duì)象的鎖,并在線程完成其任務(wù)時(shí)釋放它。
例子:
//java同步方法的例子
類 表{
synchronized void printTable( int n){ //同步方法
for ( int i= 1 ;i<= 5 ;i++){
System.out.println(n*i);
試試{
線程.sleep( 400 );
}捕捉(異常 e){System.out.println(e);}
}
}
}
MyThread1 類擴(kuò)展 Thread{
藥片;
MyThread1(表 t){
這.t=t;
}
公共無(wú)效 運(yùn)行(){
t.printTable( 5 );
}
}
MyThread2 類擴(kuò)展 Thread{
藥片;
MyThread2(表 t){
這.t=t;
}
公共無(wú)效 運(yùn)行(){
t.printTable( 100 );
}
}
公共類 TestSynchronization2{
公共靜態(tài)無(wú)效 主要(字符串參數(shù)[]){
表 obj = 新 表();//只有一個(gè)對(duì)象
MyThread1 t1=新的 MyThread1(obj);
MyThread2 t2=新的 MyThread2(obj);
t1.start();
t2.start();
}
}
輸出:
5
10
15
20
25
100
200
300
400
500
通過(guò)上述介紹,相信大家對(duì)Java線程同步方法已經(jīng)有所了解,大家如果想了解更多相關(guān)知識(shí),可以關(guān)注一下本站的Java在線學(xué)習(xí),里面的課程內(nèi)容從入門(mén)到精通,細(xì)致全面,很適合沒(méi)有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)