| 本帖最后由 林铁柱 于 2011-12-21 10:13 编辑 
 昨天晚上看畢老師的視頻=====黑马程序员_毕向东_Java基础视频教程第11天-08-多线程(创建线程-实现Runnable接口)=====在這節課里,我按照老師講的做了筆記,同樣是運行代碼我的怎麼就出了問題?
 一下是代碼部份:
 class  Ticket implements Runnable//extends Thread
 {
 private int tick = 100;
 Object obj = new Object();
 public void run()
 {
 while(true)
 {
 synchronized(obj)
 {
 if(tick>0)
 {
 try
 {
 Thread.sleep(10);
 }
 catch (Exception e){}
 System.out.println(Thread.currentThread().getName()+"....sale : "+tick--);
 }
 }
 }
 }
 }
 
 class TicketDemo2
 {
 public static void main(String[] args)
 {
 
 Ticket t = new Ticket();
 
 Thread t1 = new Thread(t);
 Thread t2 = new Thread(t);
 Thread t3 = new Thread(t);
 Thread t4 = new Thread(t);
 
 t1.start();
 t2.start();
 t3.start();
 t4.start();
 
 /*
 Ticket t1 = new Ticket();
 Ticket t2 = new Ticket();
 Ticket t3 = new Ticket();
 Ticket t4 = new Ticket();
 
 t1.start();
 t2.start();
 t3.start();
 t4.start();
 */
 }
 }
 程序運行出現兩個錯誤:
 1、只出現Thread-0,其他線程貌似為啟動
 2、程序運行到最后,不退出java VM,也不繼續運行
 
 
 
 在下實在想不出癥結之所在,特在此求助,希望有大神級的人才幫我解決這個問題。
 
 
 
 還有,大家說我們在用暴風看電影時候,突然點一下“暫停”,是不是調用了類似于Thread.wait()這樣的方法呢??
 |