SCJP 1.6版考題 226

出自 陳富國維基館
前往: 導覽搜尋


Which two statements are true? (Choose two.)
  A. It is possible to synchronize static methods.
  B. When a thread has yielded as a result of yield(), it releases its locks.
  C. When a thread is sleeping as a result of sleep(), it releases its locks.
  D. The Object.wait() method can be invoked only from a synchronized context.
  E. The Thread.sleep() method can be invoked only from a synchronized context.
  F. When the thread scheduler receives a notify() request, and notifies a thread, that thread immediately releases its lock.



解答


Ans: A D

解說:  A. It is possible to synchronize static methods. 對靜態的方法同步是可能的。
          B. When a thread has yielded as a result of yield(), it releases its locks.
                   當一個執行緒執行yield方法時,會釋放他的locks。
                   (執行yield不需要取得與釋放locks)
         C. When a thread is sleeping as a result of sleep(), it releases its locks.
                   當一個執行緒執行sleep(),會釋放其locks…
                   (執行sleep不需要取得與釋放locks)
          D. The Object.wait() method can be invoked only from a synchronized context.
                     一個物件的wait方法只能由同步的本文中被叫用。
           E. The Thread.sleep() method can be invoked only from a synchronized context.
                     Thread.sleep()方法只能由同步的本文中被叫用。
                     (不必)
           F. When the thread scheduler receives a notify() request, and notifies a thread, that thread immediately releases its lock.
                      當執行緒的排班器收到一個notify的通知,被通知的執行緒會立刻釋放其lock
                      (排班器是負責從runnable狀態中的執行緒找一個進入cpu,不會去處理在wait狀態中的執行緒)