[LTM] Chương 6.6 : Discuss thread states (Các trạng thái của luồng)

Người đăng: share-nhungdieuhay on Thứ Tư, 26 tháng 3, 2014

Six states of Thread

Every Thread has a state and a Thread can be in one of these six states.

  1. new. A state in which a thread has not been started. 
  2. runnable. A state in which a thread is executing. 
  3. blocked. A state in which a thread is waiting for a lock to access an object. 
  4. waiting. A state in which a thread is waiting indefinitely for another thread to perform an action. 
  5. timed_waiting. A state in which a thread is waiting for up to a specified period of time for another thread to perform an action. 
  6. terminated. A state in which a thread has exited.

The New Thread State

  • Tạo tuyến đoạn mới: Thread newThr= new Thread(“threadName“);
  • Kích hoạt tuyến đoạn khởi động : newThread.start();
  • Khi tuyến đoạn ở trạng thái New thì chỉ có phương thức start() được gọi, nếu không sẽ có ngoại lệ IllegalThreadStateException  được đưa ra
The Runnable thread state
Một tuyến đoạn ở trạng thái runnable mỗi khi phương thức start() của nó được kích hoạt. 


Khi đó: mã lệnh trong phương thức run() (not start()) có thể được xử lý bất kỳ khi nào giành được quyền xử lý từ hệ điều hành. 
The not Runnable Thread State
Một tuyến đoạn ở not runnable state (blocked) khi:
  • Phương thức sleep() của tuyến đoạn được gọi: Tuyến đoạn sẽ tạm dừng sau một số ms xác định. 
  • Tuyến đoạn gọi phương thức wait() của một đối tượng: Tuyến đoạn sẽ not runnable cho tới khi phương thức notify() hoặc notifyAll() được gọi từ một tuyến đoạn khác. 
  • Tuyến đoạn bị blocked() bởi một thao tác vào/ra. Tuyến đoạn sẽ not runnable cho tới khi hoạt động vào ra hoàn thành.
The Dead Thread State
A thread có thể dead or alive. 
Dead khi phương thức run() hoàn thành việc xử lý.
Dead khi gán giá trị null cho đối tượng 
Phương thức isAlive(): xác định một thread còn sống hay ko
Một thread ở trạng thái dead không thể được khởi động lại.
Different thread states
Main Thread
Mỗi khi chạy một ứng dụng trong java thì đã có một thread. 
Đây là thread chính, nó thực thi các dòng lệnh trong method : public static void main . Đây là một điểm nhập bắt buộc cho mọi ứng dụng độc lập. main thread : Tuyến đoạn đầu tiên thực hiện trong ứng dụng đa tuyến đoạn, được tạo ra tự động
User thread: Người dùng tạo threads
currentThread(): phương thức được dùng để truy nhập vào main thread.

Some methods of thread class
final boolean isAlive(): kiểm tra thread còn chạy không.

final String getName(): trả về tên của thread.

final void setName(String name): thiết đặt tên cho thread

{ 0 nhận xét... read them below or add one }

Đăng nhận xét