程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 編寫一個 火車站賣票程序--3個窗口同時售票

編寫一個 火車站賣票程序--3個窗口同時售票

編輯:關於C語言

  [html]  <span style="color:#3366ff;">/*   實現Runnable接口 創建Thread類  共享一個數據 </span>   [html]   <span style="color:#3366ff;">編寫一個 火車站賣票程序--3個窗口同時賣票    </span><span style="color:#3366ff;">    */      class PP implements Runnable{  //實現了一個Runnable接口的類PP       public int tickets=100;     //共同擁有100張票       String str=new String("123");  //創建String對象  把局部名字傳進同步參數裡        public void run(){             while(true){ //當條件為真                synchronized(this.str){   //(同步的參數必須是一個對象的名字)                    //當tt線程判斷條件為真,把str鎖上,執行內部的代碼,當內部代碼沒有執行完,CPU有可能會被其他線程搶去,但是當判斷同步有鎖                   //它就會在外面等著,進不來,保證了只有一個線程在內部執行,直到tt把內部代碼執行完退出之後,會在次跟tt1在同一起跑線上搶占CPU的執行權                                      if(tickets>0){                       System.out.println(Thread.currentThread().getName()+"賣出去的票數是:"+tickets);                       tickets--;                   }                   else                   {                       break;                   }               }           }                  }   }   public class Threade_14 {       public static void main(String[] args) {           PP pp =new PP();           Thread tt1=new Thread(pp); //構造Thread對象 實現Runnable類PP           Thread tt2=new Thread(pp);           Thread tt3=new Thread(pp);           tt1.start();  //開啟線程           tt2.start();           tt3.start();       }   }</span>      

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved