新聞中心
Java多線程同步在語(yǔ)言應(yīng)用中十分的關(guān)鍵,我們?cè)诓粩嗟膶W(xué)習(xí)中就會(huì)注意到這一點(diǎn)。下面我們就詳細(xì)的看看如何才能更好的進(jìn)行Java多線程同步的應(yīng)用。下面的代碼會(huì)對(duì)你有所幫助。

目前創(chuàng)新互聯(lián)已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、成都網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、鹽池網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
一個(gè)很重要的關(guān)鍵字就是線程同步synchronized,下面的火車(chē)票的售票系統(tǒng)的模型:同步分
同步塊和同步方法:
- class SellThread implements Runnable
- {
- int tickets=100;
- Object obj=new Object();
- boolean b=false;
- public void run()
- {
- if(b==false)
- {
- while(true)
- sell();
- }
- else
- {
- while(true)
- {
- synchronized(obj)
- {
- try
- {
- Thread.sleep(10);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- synchronized(this)
- {
- if(tickets>0)
- {
- System.out.println
- ("obj:"+Thread.currentThread().getName()+
- "
- sell tickets:"+tickets);
- tickets--;
- }
- }
- }
- }
- }
- }
- public synchronized void sell()
- {
- synchronized(obj)
- {
- if(tickets>0)
- {
- try
- {
- Thread.sleep(10);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- System.out.println("sell():"+Thread.currentThread
- ().getName()+
- " sell tickets:"+tickets);
- tickets--;
- }
- }
- }
- }
通過(guò)網(wǎng)上資料得知:同步塊和同步方法其實(shí)本質(zhì)是一樣的:都是對(duì)對(duì)象枷鎖。Java多線程同步中每個(gè)對(duì)象都有一個(gè)監(jiān)視器----鎖,同步方法是利用this所代表的對(duì)象的鎖,同步塊利用的是同步塊對(duì)象本身的鎖。
網(wǎng)頁(yè)題目:Java多線程同步具體實(shí)例講解
瀏覽路徑:http://m.5511xx.com/article/dhcdhsc.html


咨詢
建站咨詢
