版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、多線程一、填空題 1、健狀的 2、run()3、Thread多線程Runnable4、1015、synchronized、 wait()、 notify()6、 init() 7、并發(fā)8、線程、 start()、 pa()、 stop()destroy()9、線程不安全性10、死鎖 11、finally12、死鎖13、數(shù)據(jù)競爭 14、sleep() 15、synchronized 16、搶先式調(diào)度 17、false18、線程 代碼19、對象流20、對象串行化21、事件源 22、 Thread 23、main、優(yōu)先級倒置、饑餓24、loicture25、sleep()26、java.lang.T
2、nread 27、可運行28、運行狀態(tài) 29、yield()30、run() 31、Thread32、wait() notify() 33、數(shù)據(jù)34、run ()35、新建狀態(tài)、可運行狀態(tài)、運行狀態(tài)、終止?fàn)顟B(tài)。二、選擇題1-5BBCCD610CBDAD11-15BDAAB16-20 CBCCA21-25 CBADD36-40 CBCBD41-45 ACDBB56-60 CCCBD61-65 CBBAA76-80 BCBDD81-85 CCCDB96-100ABAAC101-105 DCCDB CDBDC三、多項選擇26-30CCABB31-35DBDDB46-50 BDACB51-55 DCD
3、CA66-70 BABBA71-75 ADBAA86-90 AADAB91-95 BBACA106-110 DABAB111-1151、ACD5、ABC四、判斷題2、ABCD6、AD3、ABC7、ABCD4、AB1-10 T T T T T T F T五、程序分析題T11-21 T F T TT F1、輸出結(jié)果:ACBBBD2、run()方法作為接口中的方法缺省是 public 的,題中縮小了范圍。改正如下、publicclassTestimplementsRunnableThreadt=newThread(this); t.start();publicprotected voidrun()S
4、ystem.out.prln(“thread is running now”);3、該程序的運行結(jié)果為: Current threadAfter name change 321六、程序設(shè)計題1、有三個線程 ID 分別是 A、B、C,請有多線編程實現(xiàn),在屏幕上循環(huán)打印 10 次 ABCABCpublic sic void main(String args) XunleiLock lock = new XunleiLock();newThread(newXunleiPrer(A,lock).start();newThread(newXunleiPrer(B,lock).start();newThr
5、ead(newXunleiPrer(C,lock).start();class XunleiPrer implements Runnable private String name = ;private XunleiLock lock = null;privatecount=10;public XunleiPrer(String name, XunleiLock lock) = name;this.lock = lock;Overridepublic void run() while(count0) synchronized (lock) if(lock.getName().equalsIgn
6、oreCase() System.out.pr(name);count-; if(.equals(A) lock.setName(B);elseif(.equals(B) lock.setName(C);elseif(.equals(C) lock.setName(A);class XunleiLockpublic String name = A; public String getName() return name;public void setName(String name) = name;2、試著編寫一個程序,創(chuàng)建兩個新線程。 import java.util.*;class Tim
7、ePrer extends Thread pauseTime;String name;public TimePrer(x, String n) pauseTime = x; name = n;public void run() while(true) try System.out.prln(name + : + newDate(System.currentTimeMillis();Thread.sleep(pauseTime); catch(Exception e) System.out.prln(e);sic public void main(String args) TimePrertp1
8、=newTimePrer(1000,FastGuy);tp1.start();TimePrertp2=newTimePrer(3000,SlowGuy);tp2.start();3、試著編寫一個程序,實現(xiàn) Runnable 接口,創(chuàng)建的一個線程。/通過 Runnable 接口創(chuàng)建的另外一個線程;class thread2 implements Runnable/自定義線程的 run()方法; public void run()System.out.prln(Thread2 is running);/程序的主類class Multi_Thread/主類;plubic sic void(Strin
9、g args)/主方法;thread1threadone=newthread1();/ 用Thread 類的子類創(chuàng)建線程;Thread threadtwThread(new thread2();/用 Runnable 接口類的對象創(chuàng)建線程;threadone.start(); threadtwo.start(); /strat()方法啟動線程;4、實現(xiàn)通過四個售票點發(fā)售某日某次列車的 100 張車票,一個售票點用一個線程表示。public class ThreadDome1public sic void main(String args)ThreadTest t = new ThreadTes
10、t(); t.start();t.start();t.start();t.start();class ThreadTest extends Threadprivateticket = 100;public void run() while(true) if(ticket 0)System.out.prln(Thread.currentThread().getName() +is saling ticket + ticket-);else break;public class ThreadDemo1public sic void main(String args)new ThreadTest()
11、.start();new ThreadTest().start(); new ThreadTest().start(); new ThreadTest().start();class ThreadTest extends Threadprivateticket = 100;public void run() while(true) if(ticket 0)System.out.prln(Thread.currentThread().getName() + is saling ticket + ticket-);else break;5、CrazyCoder為例,現(xiàn)在 6 個成員因工作需要,成員
12、需要做一個項目,因為是多個人做,設(shè)計用多線程來做。首先定義成員類 UserInfo(表示成員信息),還有一個方法 Work()表示工作。public claserInfo private string _name;/ 用戶名稱public string Nameget return _name; set _name = value; /線程執(zhí)行具體方法 注意:必須是 Void 類型,不能為靜態(tài)方法/ by crzycoder HYPERLINK http:/w/ http:/w/public void Work()/這里寫要做的工作代碼現(xiàn)在開始寫線程代碼public class WorkThr
13、ead/ 線程執(zhí)行代碼/ by crzycoder HYPERLINK http:/w/ http:/w/public void CrazyCoderThread()/假設(shè) for (6 名成員開始工作i = 1; i = 6; i+)UserInfo u = new UserInfo();u.Name= 瘋 狂成 員 +i.ToString();Thread t = new Thread(u.Work); t.Start();6、用 JAVA SOCKET 編程,實現(xiàn)簡單的 Echo 功能。 如、客戶端從鍵盤輸入 hi (當(dāng)用戶輸出 exit 退出程序),服務(wù)端響應(yīng)為 hi(服務(wù)器要求為多線
14、程)解、服務(wù)器程序、import java.io.*; import .*;public class MyServer extends Thread private Socket cq ;public MyServer(Socket cq) this.cq = cq;public void run() tryBufferedReaderin=newBufferedReader(newInputStreamReader(cq.getInputStream();PrWriter out=new PrWriter(cq.getOutputStream();while(true)String str=
15、in.readLine();System.out.prln(str);out.prln(message: +str);out.flush();if(str.equals(exit) break;catch(IOException e)System.out.prln(e.message();public sic void main(String args) throws IOExceptionServerSocket server=new ServerSocket(8009); while(true)Socket s=server.accept(); new MyServer(s).start(
16、);客戶端程序、 import .*; import java.io.*;public class MyCntpublic sic void main(String args)throws ExceptionSocket server=new Socket(localhost,8009);BufferedReaderin=newBufferedReader(newInputStreamReader(server.getInputStream();PrWriterout=newPrWriter(server.getOutputStream();BufferedReaderbr=newBuffer
17、edReader(newInputStreamReader(System.in); while(true)String str=br.readLine();out.prln(str);out.flush();if(str.equals(exit) break;System.out.prserver.close();ln(in.readLine();7、提貨單真實數(shù)據(jù)一個調(diào)用者在調(diào)用耗時操作,不能立即返回數(shù)據(jù)時,先返回一個提貨單.然后在過一斷時間后憑提貨單來獲取真正的數(shù)據(jù).去蛋糕店買蛋糕,不需要等蛋糕做出來(假設(shè)現(xiàn)做要很長時間),只需要領(lǐng)個提貨單就可以了(去干別的事情),等到蛋糕做好了,再拿提貨
18、單取蛋糕就可以了。public class Host public Data request(finalcount, final char c) System.out.pr BEGIN);ln(request( + count + , + c + )/ (1) 建立 FutureData 的實體final FutureData future = new FutureData();/ (2) 為了建立 RealData 的實體,啟動新的線程new Thread() public void run() /在類中使用 count、future、c。RealData realdata = new Re
19、alD future.setRealData(realdata);.start();ount, c);System.out.pr END);ln(request( + count + , + c + )public class RealData implements Data private final Stringcontent;public RealData(count, char c) System.out.pr ) BEGIN);ln(making RealData( + count + , + c +char buffer = new charcount;for (i = 0; i
20、count; i+) bufferi = c; try Thread.sleep(1000); catch (erruptedException e) System.out.prln(making RealData( + count + , + c +) END);this.content = new String(buffer);public String getContent() return content;public class FutureData implements Data private RealData realdata = null;privateready = fal
21、se;public synchronized void setRealData(RealData realdata) if (ready) return; / 防止 setRealData 被調(diào)用兩次以上。this.realdata = realdata; this.ready = true; notifyAll();public synchronized String getContent() while (!ready) try wait(); catch (erruptedException e) return realdata.getContent();顧客做完自己的事情后,會拿著自己
22、的“提貨單”來取蛋糕、System.out.prln(data1 = + data1.getContent();這時候如果蛋糕沒做好,就只好等了、while (!ready) try wait(); catch (erruptedException e) /等做好后才能取到 return realdata.getContent();8、一個從 1 加到 10,第 2 個從 11 加到 20.線程同步執(zhí)行,最后再把十個線程結(jié)果相加public class Test extends Thread sicn = 0;startNum = 0 ;privatepublic Test (sn)this.
23、startNum = sn ;public sic synchronized void addSum (num)n += num ;public sic void main(String args) Thread thList = new Thread 10 ;for (i = 0; i 10; i +) thList i = new Test(i * 10 + 1) ; thList i.start();for (i = 0 ; i 10 ; i +)thList i.join () ;System.out.prln (Sum is : + n) ;public void run() sum
24、 = 0 ;for (i = 0; i 10; +i) sum += sn + i ;addSum (sum) ;9、一個多線程的搖獎器的例子在第一個類中定義三個 void 方法用于產(chǎn)生隨機數(shù)import java.util.Random; public class YaoJiangQi privatebase=9;public void winningone()Random random=new Random(); random.setSeed(11l);/這里可以用不同的(long) numberline=new7;System.out.pr(一等獎號碼為、 );for(i=0;i=6;i
25、+)if(i=0) numberlinei=random.next else(base)+1;for(j=0;ji;j+)if(numberlinei=numberlinej)numberlinei=random.next(base)+1;System.out.prSystem.out.pr(numberlinei);(n);public void winnino()Random random=new Random(); random.setSeed(22l); numberline=new7;System.out.pr(二等獎號碼為、);for(i=0;i=6;i+)if(i=0) numb
26、erlinei=random.next else(base)+1;for(j=0;ji;j+)if(numberlinei=numberlinej)numberlinei=random.next(base)+1;System.out.pr(numberlinei);System.out.pr(n);public void winningthree()Random random=new Random(); random.setSeed(33l); numberline=new7;System.out.pr(三等獎號碼為、 );for(i=0;i=6;i+)if(i=0) numberlinei=
27、random.next else(base)+1;for(j=0;ji;j+)if(numberlinei=numberlinej)numberlinei=random.next(base)+1;System.out.pr(numberlinei);定義三個線程public class Yaoone extends Thread public void run()YaoJiangQi yao1=new YaoJiangQi(); yao1.winningone();public class Yaotwo extends Thread public void run()YaoJiangQi ya
28、o2=new YaoJiangQi();yao2.winnino();public class Yaothree extends Thread public void run()YaoJiangQi yao3=new YaoJiangQi(); yao3.winningthree();測試public class TryYaoJiangQi public s tryic void main(String args) Thread thread1=new Yaoone(); Thread thread2=new Yaotwo(); Thread thread3=new Yaothree(); t
29、hread1.setPriority(3); thread2.setPriority(2); thread3.setPriority(1); thread1.start();thread2.start(); thread3.start();catch(Exception e)e.prStackTrace();10、編寫一個多線程程序?qū)崿F(xiàn)如下功能、線程 A 和線程 B 分別在屏幕上顯示信息“A start”“B start”后 調(diào)用 wait 等待;線程C 開始后調(diào)用 sleep 休眠一段時間,然后調(diào)用 notifyall,使線程 A 和線程 B 繼續(xù)運行。線程 A 和線程 B 恢復(fù)運行后輸出信
30、息“A END”“B END”后結(jié)束,線程 C 在判斷線程A 線程B 結(jié)束后,自己也結(jié)束運行.、ThreadDemo.java-public class ThreadDemo public sic void main(String args) Object obj = new Object();ThreadA ta = new Threabj);ThreadB tb = new ThreadB(obj);ThreadC tc = new ThreadC(obj, ta, tb); ta.start();tb.start();tc.start();/ 線程 Aclass ThreadA exte
31、nds Thread private Object obj;public Threabject obj) this.obj = obj;public void run() System.out.prln(A Start);synchronized(obj) try obj.wait(); catch(Exception e) e.prStackTrace();System.out.prln(A End);/ 線程 Bclass ThreadB extends Thread private Object obj;public ThreadB(Object obj) this.obj = obj;
32、public void run() System.out.prln(B Start);synchronized(obj) try obj.wait(); catch(Exception e) e.prStackTrace();System.out.prln(B End);/ 線程 Cclass ThreadC extends Thread private Object obj;private ThreadA ta; private ThreadB tb;public ThreadC(Object obj, ThreadA ta, ThreadB tb) this.obj = obj;this.
33、ta = ta; this.tb = tb;public void run() System.out.prln(C Start);synchronized(obj) try sleep(1000); obj.notifyAll(); catch(Exception e) e.prStackTrace();while(ta.isAlive() & tb.isAlive(); / 判斷 A 線程和B 線程是否已經(jīng)結(jié)束System.out.prln(C End);11、設(shè)計 4 個線程,其中兩個線程每次對 j個線程對j 每次減少 1。寫出程序。增加 1,另外兩public class ThreadT
34、est1private public sj;ic void main(String args)ThreadTest1 tt=new ThreadTest1(); Inc inc=tt.new Inc();Dec dec=tt.new Dec();for(i=0;i2;i+)Thread t=new Thread(inc); t.start();t=new Thread(dec); t.start();private synchronized void inc() j+;System.out.pr);ln(Thread.currentThread().getName()+-inc:+jpriva
35、te synchronized void dec()j-;System.out.prln(Thread.currentThread().getName()+-dec:+j);class Inc implements Runnablepublic void run()for(i=0;i100;i+) inc();class Dec implements Runnable public void run()for(i=0;i100;i+)dec();12、在java 中實現(xiàn)同時寫多張public class TestThread private String s;public void pr ne
36、w Thread() () public void run() while (Thread.currentThread() = this) /當(dāng)進(jìn)程資源分配到該線程對象時執(zhí)行System.out.pr try ln(s);/執(zhí)行自定義操作Thread.sleep(10);/休息一下,讓出資源 catch (erruptedException e) e.prStackTrace();.start();public sic void main(String args) /實例化 4 個不同的對象,同時開始做自己的操作TestThread t1 = new TestThread();t1.s = A
37、;TestThread t2 = new TestThread(); t2.s = B;TestThread t3 = new TestThread(); t3.s = C;TestThread t4 = new TestThread(); t4.s = D;t1.pr t2.pr t3.pr t4.pr();();();();13、要實現(xiàn)一個 socket 服務(wù)器接受客戶端 1 發(fā)來的消息,客戶端 1 每隔一段時間就會發(fā)送消息給服務(wù)器,服務(wù)器將消息數(shù)據(jù)庫,同時發(fā)送到客戶端 2 用于實時顯示,是通過兩個端口分別與兩個客戶端進(jìn)行通信,一收一發(fā)還是僅方法進(jìn)行發(fā)送。 import java.awt.
38、*; import java.awt.event.*; import java.applet.*; import .*; import java.io.*;import java.util.*;一個端口,收消息,然后再調(diào)用public class ChatCnt extends Applet TextField tfName = new TextField(15); /輸入文本域Button btConnect = new Button(連接); /連接按鈕Button btDisconnect = new Button(斷開連接);TextArea tfChat = new TextArea
39、(8,27); /顯示聊天信息文本框Button bd = new Button(發(fā)送);TextField tfMessage = new TextField(30); /聊天輸入java.awt.List list1 = new java.awt.List(9); /顯示用戶信息Socket socket=null; /連接端口PrStres=null; /輸出流Listen listen=null; /線程public void init() /Applet 初始化tfChat.setEditable(false); /設(shè)置信息顯示框為不可編輯Panel panel1 = ne Pane
40、l panel2 = ne Panel panel3 = nenel(); /實例化面板 nel();nel();tfChat.setBackground(Color.white); /設(shè)置組件背景顏色 panel1.setBackground(Color.orange); panel2.setBackground(Color.pink); panel3.setBackground(Color.orange);panel1.add(new Label( panel1.add(tfName); panel1.add(btConnect); panel1.add(btDisconnect); pa
41、nel2.add(tfChat); panel2.add(list1);、); /增加組件到面板上panel3.add(new Label(聊天信息);panel3.add(tfMessage);panel3.add(bd);setLayout(new BorderLayout(); /設(shè)置 Applet 布局管理器add(panel1, BorderLayout.NORTH); /增加面板到 Applet 上add(panel2, BorderLayoENTER);add(panel3, BorderLayout.SOUTH);public try if(evt.action(Event e
42、vt,Object obj) /事件處理=btConnect) /點擊連接按鈕if (socket=null)socket=new Socket(InetAddress.getLocalHost(),5656); /實例化一個套接字ps=new PrStream(socket.getOutputStream(); /獲取輸出流StringBuffer inf StringStringBuffer(INFO: );userinfo=tfName.getText()+:+InetAddress.getLocalHost().toS tring();ps.prln(info.append(useri
43、nfo); /輸出信息ps.flush();listen=new Listen(this,tfName.getText(),socket); /實例化線程listen.start(); /啟動線程else if(evt.=btDisconnect) /點擊斷開連接按鈕disconnect(); /調(diào)用斷開連接方法else if(evt.=bd) /點擊發(fā)送按鈕if(socket!=null)StringBuffer msg=new StringBuffer(MSG: ); String msgtxt=new String(tfMessage.getText();ps.prln(msg.appe
44、nd(tfMessage.getText(); /發(fā)送信息ps.flush();catch (Exception ex)ex.prStackTrace(); /輸出錯誤信息return true;public void disconnect() /斷開連接方法if(socket!=null)ps.prln(QUIT); /發(fā)送信息ps.flush();class Listen extends Thread /服務(wù)器傳送的信息String nall; /用戶名BufferedReader reader ; /輸入流PrStres=null; /輸出流Socket socket=null; /本地
45、套接字ChatCnt cnt=null; /客戶端 ChatCnt 實例public Listen(ChatCnt p,String n,Socket s) cnt=p;name=n;socket=s;try reader=newBufferedReader(newInputStreamReader(s.getInputStream(); /獲取輸入流ps=new PrStream(s.getOutputStream(); /獲取輸出流catch(IOException ex)cnt.disconnect(); /出錯則斷開連接ex.prStackTrace(); /輸出錯誤信息public
46、void run() String msg=null; while(socket!=null) trymsg=reader.readLine(); /catch(IOException ex)服務(wù)器端傳來信息cnt.disconnect(); /出錯則斷開連接ex.prStackTrace(); /輸出錯誤信息if (msg=null) /從服務(wù)器傳來的信息為空則斷開此次連接c c cnt.listen=null; nt.socket=null; nt.list1.removeAll();return;StringTokenizer st=new StringTokenizer(msg,:);
47、 /分解字符串String keyword=st.nextToken();if(keyword.equals(newUser) /新用戶連接信息cnt.list1.removeAll(); /移除原有用戶名while(ssMoreTokens() /取得目前所有聊天室用戶名String str=st.nextToken();cnt.list1.add(str); /增加到用戶列表中else if(keyword.equals(MSG) /聊天信息 String usr=st.nextToken();c c cnt.tfChat.append(usr); /增加聊天信息到信息顯示框nt.tfCh
48、at.append(st.nextToken(0); nt.tfChat.append(n);else if(keyword.equals(QUIT) /斷天連接信息System.out.pr tryln(Quit);c c cnt.listen=null;nt.socket.close(); /關(guān)閉端口nt.socket=null;catch(IOException e)cnt.list1.removeAll(); /移除用戶列表return;14、假定一個緩沖區(qū)只能保存一條信息。即緩沖區(qū)只有兩個狀態(tài)、有信息或沒有信息。void reader_function ( void ); void
49、writer_function ( void ); char buffer;buffer_has_item=0; pthread_mutex_t mutex; struct timespec delay; void main ( void ) pthread_t reader;/* 定義延遲時間*/delay.tv_sec = 2;delay.tv_nec = 0;/* 用默認(rèn)屬性初始化一個互斥鎖對象*/ pthread_mutex_init (&mutex,NULL);pthread_create(&reader,*)&reader_function), NULL); writer_func
50、tion( );void writer_function (void) while(1)/* 鎖定互斥鎖*/pthread_attr_default,(voidpthread_mutex_lock (&mutex); if (buffer_has_item=0) buffer=make_new_item( ); buffer_has_item=1;/* 打開互斥鎖*/ pthread_mutex_unlock(&mutex); pthread_delay_np(&delay);void reader_function(void) while(1) pthread_mutex_lock(&mut
51、ex); if(buffer_has_item=1) consume_item(buffer); buffer_has_item=0;pthread_mutex_unlock(&mutex); pthread_delay_np(&delay);15、模擬火車票聯(lián)網(wǎng)售票系統(tǒng)、多個線程同時出票,保證每張出票的連續(xù)且不重復(fù)。public class Demopublic sic void main(String args )SellTicket st1=new SellTicket(); st1.setName(線程 1); SellTicket st2=new SellTicket(); st2.
52、setName(線程 2); SellTicket st3=new SellTicket(); st3.setName(線程 3); st1.start();st2.start();st3.start();public clasprivate slTicket extends Threadicid=0;public void run() for(i=0;i20;i+) sell();public synchronized void sell() id+;System.out.prln(currentThread().getName()+買票+id+id);16、JAVA 多線程編程。 用 JA
53、VA 寫一個多線程程序,如寫四個線程,二個加 1,二個對一個變量減一,輸出。package;import java.io.File;import java.io.FileOutputStream; import java.io.IOException;import java.io.PrStream;import com.sun.media.sound.Toolkit;public class test sicnum = 0;public sic void main(String args) System.out.prln(now: + num );new test().start();clas
54、s Thd implements Runnable/創(chuàng)建線程public void run() num +;System.out.prln( num + n);class Thd1 implements Runnable/創(chuàng)建線程 public void run() num -;System.out.prln( num + n);public void start() for (i = 0;i 2; i +)Thd th1 = new Thd();new Thread(th1).start();/線程啟動for (i = 0;i 1) available=true;try wait();cat
55、ch(Exception e)System.out.prln(. end.);public synchronized void end()System.out.prln(. end.);publicsynchronized void wake() notifyAll();public sic void main(String args) / TODO Auto-generated method stubABC x=new ABC(haha); TestThread a=new TestThread(x); TestThread b=new TestThread(x); C c=new C(x)
56、;(new Thread(a).start();(new Thread(b).start();(new Thread(c).start();class TestThread implements Runnable ABC abc;public TestThread(ABC abc) this.abc=abc;public void run() if(!abc.available) abc.st();else abc.end();class C implements Runnable ABC abc;public C(ABC abc) this.abc=abc;public void run()
57、try Thread.sleep(1000);/ System.out.prln(sjlfsj jfsdl j);/驗證是否執(zhí)行到這里catch(erruptedException e);abc.wake();18、有一個南北向的橋,只能容納一個人,現(xiàn)橋的兩邊分別有 10 人和 12 人,編制一個多線程序讓這些人到達(dá)對岸,每個人用一個線程表示,橋為共享資源。在過橋的過程中顯示誰在過橋其其package cn.thread;。public class Through_out_bridge public sic void main(String args) Bridge b = Bridge.ge
58、tInstance();/實例化橋/實例化左端 9 個人,此時所有人都不能過橋,橋的可以狀態(tài)標(biāo)志為不可以用for (i = 1; i = 9; i+) Thread t = new Thread(new t.start();(false, i, b);/實例化右端 12 個人,此時所有人都不能過橋,橋的可以狀態(tài)標(biāo)志為不可以用for(i=1 ;i=12;i+)Thread t = new Thread(new t.start();(true,i,b);/橋的可用狀態(tài)給左端第 10 個人,可以自定義給誰b.se = true;Thread t = new Thread(new(false, 10,
59、 b);classimplements Runnable public Bridge bridge;/橋private String hand;/在橋哪一端 No;/序號public(side,i, Bridge bridge) this.No = i; this.bridge = bridge;if(bridge.se)System.out.prln(i+已經(jīng)過橋。);if (side) this.hand = new String(右); else this.hand = new String(左);/過橋方法publicsynchronizedvoidthrough()throwserr
60、uptedException if (bridge.se) System.out.prln(hand+邊第+No + 在過橋);bridge.open( No); else bridge.lock(No);public void run() try Thread.sleep(1000);/System.out.pr through();ln(No+hand+ 邊已經(jīng)過橋!); catch (erruptedException e) / TODO Auto-generated catch blocke.prStackTrace();class Bridge /可用狀態(tài)判斷 true、可用publ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于情景再現(xiàn)的博物館文物展示動畫設(shè)計研究
- PDCoV核衣殼蛋白相分離的機制研究
- 二零二五年度快遞配送與代收貨款合作協(xié)議模板
- 加入價值鏈組織模式對農(nóng)戶借貸行為的影響研究
- 2025年度電子勞動合同模板與員工離職手續(xù)簡化合同
- 2025年度改簽用人單位跨區(qū)域勞務(wù)派遣服務(wù)合同
- 渣土運輸施工方案
- 2025年度歷史文化街區(qū)裝修合同解除及文化遺產(chǎn)保護(hù)協(xié)議
- 二零二五年度房地產(chǎn)開發(fā)項目評估合同
- 2025年度車庫租賃合同(含車位租賃與租賃期限最長5年)
- 2025-2030年中國陶瓷電容器行業(yè)運營狀況與發(fā)展前景分析報告
- 二零二五年倉儲配送中心物業(yè)管理與優(yōu)化升級合同3篇
- 2025屆廈門高三1月質(zhì)檢期末聯(lián)考數(shù)學(xué)答案
- 音樂作品錄制許可
- 江蘇省無錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測試語文試題(解析版)
- 拉薩市2025屆高三第一次聯(lián)考(一模)英語試卷(含答案解析)
- 開題報告:AIGC背景下大學(xué)英語教學(xué)設(shè)計重構(gòu)研究
- 師德標(biāo)兵先進(jìn)事跡材料師德標(biāo)兵個人主要事跡
- 連鎖商務(wù)酒店述職報告
- 《實踐論》(原文)毛澤東
- 第三單元名著導(dǎo)讀《紅星照耀中國》(公開課一等獎創(chuàng)新教學(xué)設(shè)計+說課稿)
評論
0/150
提交評論