1. 程式人生 > >同步代碼塊

同步代碼塊

sta 同一時間 解決 使用 .cn his 一個 except style

package tongbu.cn;
/*
 * 多個線程同時操作同一資源,會引起賣出的票為負數,為了解決這個問題,就要使用同步
 * 所謂同步,就是多個操作在同一時間段內 只能有一個線程進行
 * 同步代碼塊的格式
 * synchronized(同步對象){
 * 需要同步的代碼
 * }
 */
//一個類實現runnable 
class TongBuDaiMa implements Runnable{
    private int tiket = 5;
    public void run(){
        for (int i = 0; i < 100; i++) {
            
//判斷票數是否大於0 ,大於0的話就賣票 //同步代碼塊 synchronized (this) { if (tiket>0) { //設置線程之間延遲 try{Thread.sleep(50);} catch(Exception e){} System.out.println("tiket = "+ tiket--); } } } } }
public class TongBu { public static void main(String[] args) { TongBuDaiMa tb = new TongBuDaiMa(); Thread tbd1 = new Thread(tb); Thread tbd2 = new Thread(tb); Thread tbd3 = new Thread(tb); tbd1.start(); tbd2.start(); tbd3.start(); } }

同步代碼塊