Đa luồng trong lập trình java
Nội dung bài học
Khái niệm multitasking và multithreading
Khái niệm 'thread' - luồng
Thread hiện thời
Các trạng thái của thread
Khởi tạo thread
Quản lý thread
Khái niệm multitasking và multithreading
Multitasking: Là khả năng chạy đồng thời một hoặc nhiều chương trình cùng một lúc trên một hệ điều hành.
Internet Explorer
Microsoft Excel
Window Media Player
Multithreading: Là khả năng thực hiện đồng thời nhiều phần khác nhau của một chương trình được gọi là thread.
Sheet1
Sheet2
Sheet3
Thread là gì?
Thread là đơn vị nhỏ nhất của mã thực thi mà đoạn mã đó thực hiện một nhiệm vụ cụ thể.
Một ứng dụng có thể được chia nhỏ thành nhiều nhiệm vụ và mỗi nhiệm vụ có thể được giao cho một thread.
Nhiều thread cùng thực hiện đồng thời được gọi là đa luồng (multithread).
Các quá trình đang chạy dường như là đồng thời, nhưng thực ra nó không phải là như vậy.
Current thread
Current thread: Là thread hiện tại đang hoạt động.
Vòng đời của một thread
Các trạng thái của thread
New: Một thread ở trạng thái ‘new’ nếu bạn tạo ra một đối tượng thread nhưng chưa gọi phương thức start().
Ready: Sau khi thead được tạo, nó sẽ ở trạng thái sẵn sàng (ready) chờ phương thức start()gọi nó.
Running: Thread ở trạng thái chạy
(đang làm việc)
Sleeping: Phương thức sleep() sẽ đưa thead vào trạng thái ‘sleeping’ - dừng lại tạm thời. Sau thời gian ‘sleeping’ thread lại tiếp tục hoạt động.
Waiting: Khi method wait() hoạt động, thread sẽ rơi vào trạng trạng thái ‘waiting’-đợi. Method này được sử dụng khi hai hoặc nhiều thread cùng đồng thời hoạt động.
Blocked: Thread sẽ rơi vào trạng thái ‘blocked’- bị chặn khi thread đó đang đợi một sự kiện nào đó của nó như là sự kiện Input/Output.
Dead: Thread rơi vào trạng thái ‘dead’-ngừng hoạt động sau khi thực hiện xong phương thức run() hoặc gọi phương thức stop().
Khởi tạo thread
Hệ thống xử lý đa luồng trong Java được xây dựng trên class Thread và interface Runnable trong packaged java.lang.
Tạo thread bằng cách sử dụng interface Runnable:
1. Viết 1 class thực thi interface Runable và viết lại phương thức ‘public void run()’
2. Tạo ra 1 object vừa thực thi interface Runnable.
3. Tạo ra 1 object của class Thread với tham số truyền vào là object thực thi interface Runable.
4. Gọi phương thức start() để chạy thread
Post a Comment