當前位置:編程學習大全網 - 網站源碼 - java的壹個基礎問題,誰能解釋下這個程序怎麽運行的?涉及到太多知識點,能詳細解釋壹下的必當重賞!!!

java的壹個基礎問題,誰能解釋下這個程序怎麽運行的?涉及到太多知識點,能詳細解釋壹下的必當重賞!!!

TestSync 實現了 Runnable 接口。 因為要用多線程,實現Runnable 接口是方法之壹。

此時語法為 Thread t1=new Thread(new TestSync()); 要給new Thread() 傳壹個實現Runnable 的對象。所以例子中加了test。t1.setName() 顧名思義,修改線程名字。線程要用t1.start()來開始線程。 每個實現了Ruannable 的類,必須有run() 方法。run()方法就是每個線程要做的事情。

說說Timer 類。 有壹個靜態int num。靜態變量對任何壹個Timer對象有著相同的可見性。有因為num是private, 所以只能被Timer裏的函數訪問。

add(String name) 方法中有try{}catch{}塊兒,因為Thread.sleep(); 為拋出InterruptedException() 異常,這是jdk源代碼所拋出的,必須這麽寫。或者可以public void add(String name) throws InterruptedException(){...} 來聲明異常。如果沒有異常被拋出,則運行System.out.println();語句。

上述源代碼八成不會有什麽問題,因為run() 方法裏沒什麽循環,就執行壹次。不過線程同步的時候,必須得考慮mutual exclusion, circular wait, No preemption, hold & wait 的問題。說白了就是死鎖(dead lock)和活鎖(live lock)問題。

  • 上一篇:天狼星加密視頻機器碼是5678013650401314147326587307124844204816,求用戶名和註冊碼。
  • 下一篇:c語言,滑塊控件還不能用。如何獲取當前滑塊的值?請列出壹段代碼,謝謝!
  • copyright 2024編程學習大全網