Bài giảng Multithread - Nguyễn Văn Khiết

Multithread  
Nguyễn Văn Khiết  
Nội dung  
• Giới thiệu  
Thread  
• Tạo thread  
• Giao tiếp giữa các thread  
• Điều khiển thread  
Thread Safe  
Giới thiệu  
• Java hỗ trợ sẵn cơ chế lập trình  
multithread  
• Một chương trình multithread có thể có  
nhiều phần chạy cùng lúc. Mỗi phần như  
vậy gọi là một thread.  
Thread  
• Một thread có thể có các trạng thái  
running  
suspended  
blocked  
Độ ưu tiên của Thread  
• Độ ưu tiên của một Thread là một số  
nguyên thể hiện mức độ ưu tiên của  
thread này trong mối tương quan với  
thread khá c.  
Main Thread  
• Khi một chương trình java khởi động, có  
một thread tự động được tạo ra. Đây là  
main thread, là thread chính được chạy  
(chứa hàm main).  
Tạo thread  
Có 2 cá ch  
– kế thừa lớp Thread  
implement interface Runnable  
Đồng bộ hóa  
Sử dụng phương thức Synchronized  
Monitor trên đối tượng  
Sử dụng phương thức  
Synchronized  
• Khi một thread đang thực hiện phương  
thức có từ khóa synchronized đi kèm, các  
thread khác muốn thực hiện phương thức  
này của cùng đối tượng sẽ phải chờ  
Monitor trên đối tượng  
• Để đảm bảo chỉ một thread được truy xuất  
vào đối tượng tại một thời điểm, ta có thể  
sử dụng lệnh synchronized đối với đối  
tượng đó.  
Giao tiếp giữa các thread  
• java cung cấp các phương thức sau để hỗ  
trợ việc giao tiếp giữa các thread  
wait  
notify  
notifyAll  
Điều khiển thread  
• suspend : tạm dừng thực thi thread  
• resume : kích hoạt lại thread đang tạm  
dừng  
• stop : chấm dứt hoạt động của thread  
Điều khiển thread với java 2  
– wait : yêu cầu thread hiện thời rời bỏ monitor  
và tạm dừng họat động  
– notify : đánh thức thread đầu tiên gọi wait trên  
đối tượng  
– notifyAll : đánh thức tất cả các thread gọi wait  
trên đối tượng  
Thread Safe  
• Các swing component chỉ được truy cập  
bởi 1 thread tại 1 thời điểm.  
Event-dispatch thread là thread thực thi  
chính của chương trình (dùng swing).  
• Code làm ảnh hưởng hoặc phụ thuộc vào  
trạng thái của các component nên được  
thực thi trong event-dispatch thread.  
Thread Safe  
• SwingUtilities cung cấp cơ chế thực thi  
code trong event-dispatch thread.  
invokeAndWait(Runnable doRun) : thực thi  
đồng bộ một thread.  
invokeLater(Runnable doRun) : thực thi bất  
đồng bộ một thread  
Thread Safe  
• Ví dụ : các ví dụ swing của sun tutorial.  
ppt 16 trang myanh 8580
Bạn đang xem tài liệu "Bài giảng Multithread - Nguyễn Văn Khiết", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptbai_giang_multithread_nguyen_van_khiet.ppt
  • javaDeprecatedMethod.java
  • javaDeprecatedMethod2.java
  • javaMainThread2.java
  • javaMainThread4.java
  • javaMyThread.java
  • javaNewJFrame.java
  • javaSynchronization1.java