freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java程序設計-習題參考答案-資料下載頁

2025-06-28 08:32本頁面
  

【正文】 ava虛擬處理機在多個線程之間輪流切換,保證每個線程都能機會使用CPU資源,不過每個時刻只能有一個線程在執(zhí)行。2.線程創(chuàng)建方式有哪兩種?請舉例說明。答:兩種途徑來實現(xiàn)多線程的創(chuàng)建:一種是直接繼承Thread類并重寫其中的run( ) 方法 ,另一種是使用Runnable接口。途徑一:class SimpleThread extends Thread {private String threadname。   public SimpleThread(String str) {    threadname=str。}  public void run() {    for (int i = 0。 i 10。 i++) {    (threadname+被調(diào)用!)?!                ry {      sleep(10)。     } catch (InterruptedException e) {}   }}}途徑二:class SimpleThread implements Runnable { public SimpleThread(String str) {    super(str)。}  public void run() {    for (int i = 0。 i 10。 i++) {    (getName()+被調(diào)用!)?!                ry {      (10)。     } catch (InterruptedException e) {}   }  }}3.什么是線程的生命期?它包括哪幾種狀態(tài)?它們的關系是什么?答:線程的生命期是指從線程被創(chuàng)建開始到死亡的過程,通常包括5種狀態(tài):新建、就緒、運行、阻塞、死亡。它們的關系如圖所示:4.請舉例說明如何實現(xiàn)線程的同步(用兩種方法)。方法一(方法同步):class Stack{ private int number。 private int len=0。 public synchronized void put(int t){ while(len == 1){ try{ ()。 }catch(InterruptedException e){} } number=t。 len=1。 ()。 } public synchronized int get(){ while(len ==0){ try{ ()。 }catch(InterruptedException e){} } len=0。 ()。 return number。 }}方法二(對象同步):class Stack{ private int number。 private int len=0。 public void put(int t){ synchronized (this){ while(len == 1){ try{ ()。 }catch(InterruptedException e){} } number=t。 len=1。 ()。 } } public int get(){ synchronized (this){ while(len ==0){ try{ ()。 }catch(InterruptedException e){} } len=0。 ()。 return number; } }}class Input implements Runnable{ Stack sstack。 public Input(Stack s){ sstack=s。 } public void run(){ for(int i=1。i5。i++){ (i)。 (向Stack放入數(shù)字:+i)。 try{ ((int)(()*10))。 }catch(InterruptedException e){} } }}class Output implements Runnable{ Stack sstack。 public Output(Stack s){ sstack=s。 } public void run(){ int temp。 for(int i=1。i5。i++){ temp=()。 (向Stack取出數(shù)字:+temp)。 try{ ((int)(()*10))。 }catch(InterruptedException e){} } }}public class Hello { public static void main(String args[]){ Stack s = new Stack()。 Input t=new Input(s)。 Output o = new Output(s)。 Thread t1 = new Thread (t)。 Thread t2 = new Thread (o)。 ()。 ()。 }}5.Java中有哪些情況會導致線程的不可運行?答:一是調(diào)用了wait()方法,使得線程等待;二是調(diào)用了sleep(int time)方法,使得線程休眠;三是調(diào)用了suspend()方法,使得線程掛起;四是由于輸入輸出流而引起阻塞。6.wait()方法和sleep()方法的區(qū)別是什么?答:sleep()方法使線程進入睡眠狀態(tài),但它并不會釋放線程持有的資源,不能被其他資源喚醒,不過睡眠一段時間會自動醒過來,而wait()方法讓線程進入等待狀態(tài)的同時也釋放了持有的資源,能被其他資源喚醒。7.線程組的作用是什么?如何創(chuàng)建一個線程組?答:線程組是把多個線程集成到一個對象里并可以同時管理這些線程。在線程創(chuàng)建時,可以將線程放在某個指定的線程組中,也可以將它放在一個默認的線程組。若創(chuàng)建線程而不明確指定屬于哪個組,它們就會自動歸屬于系統(tǒng)默認的線程組。以下三種Thread類的構造方法實現(xiàn)線程創(chuàng)建的同時指定其屬于哪個線程組。public Thread (ThreadGroup group,Runnable target);public Thread (ThreadGroup group,String name);public Thread (ThreadGroup group,Runnable target,String name);8.Java線程調(diào)度的原則是什么?答:Java調(diào)度器調(diào)度遵循以下原則:優(yōu)先級高的線程比優(yōu)先級低的線程線程先調(diào)度,優(yōu)先級相等的線程按照排隊隊列的順序進行調(diào)度,先到隊列的線程先被調(diào)度。當一個優(yōu)先級低的線程運行過程中,來了一個高優(yōu)先級線程,在時間片方式下,優(yōu)先級高的線程要等優(yōu)先級低的線程時間片運行完畢才能被調(diào)度,而在搶占式調(diào)度方式下,優(yōu)先級高的線程可以立刻獲得CPU的控制權。9.如何理解死鎖?答:如果兩個或多個線程都在互相等待對方持有的鎖(喚醒),那么這些線程都進入阻塞狀態(tài),永遠地等待下去,無法執(zhí)行,程序就出現(xiàn)了死鎖。10.下列程序輸出的結果是什么?class Daemon extends Thread { public void run() { if(()==false) (thread is not daemon)。 else (thread is daemon)。 try { for(int i=0。i10。i++){ (i)。 (200)。 } }catch (InterruptedException e){} (thread done!)。 } }public class Test { public static void main (String[] args) { Thread t=new Daemon()。 (true)。 ()。 try { (900)。 }catch (InterruptedException e){}(main done!)。 }}答:輸出結果為:thread is daemon01234main done!11.編寫程序實現(xiàn)如下功能:一個線程進行如下運算1*2+2*3+3*4+……+1999*2000,而另一個線程則每隔一段時間讀取前一個線程的運算結果。解:class Result{ private long total=1*2。 public void write(long t){ total=total+t。 } public long read(){ return total。 }}class Addition implements Runnable{ Result rt。 public Addition(Result s){ rt=s。 } public void run(){ for(int i=2。i2000。i++){ long tmp=0。 tmp=i*(i+1)。 (tmp)。 try{ (10)。 }catch(InterruptedException e){} } }}class Output implements Runnable{ Result rt。 public Output(Result s){ rt=s。 } public void run(){ long temp。 for(int i=1。i200。i++){temp=()。 (temp)。 try{ (100)。 }catch(InterruptedException e){} } }}public class Hello { public static void main(String args[]){ Result rt = new Result()。 Addition t=new Addition(rt)。 Output o = new Output(rt)。 Thread t1 = new Thread (t)。 Thread t2 = new Thread (o)。 ()。 ()。 }}12.編寫程序實現(xiàn)如下功能:第一個線程打印6個a,第二個線程打印8個b,第三個線程打印數(shù)字1到10,第二和第三個線程要在第一個線程打印完成之后才能開始打印。解:class Thread1 extends Thread{ public void run() { for(int i=0 。 i6 。 i++) { (39。a39。)。 } } }class Thread2 extends Thread{ public void run() { try{ for(int i=0 。 i8 。 i++) { (39。b39。)。 (100)。 } }catch(InterruptedException e){} }}class Thread3 extends Thread{ public void run() { try{ for(int i=1 。 i=10 。 i++) { (i)。 (100)。 } }catch(InterruptedException e){} }}public class Test{ public static void main (String[] args) { Thread1 t1 = new Thread1()。 Thread2 t2 = new Thread2()。 Thread3 t3 = new Thread3()。 () 。 try{ () 。 }catch(InterruptedException e) {} () 。 ()。 }}13.編寫一個線程同步的程序:有一個字符緩沖區(qū),長度為length,我們創(chuàng)建兩個線程,其中一個線程向字符緩沖區(qū)寫入一個字符,(字符緩沖區(qū)一次只能裝入
點擊復制文檔內(nèi)容
物理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1