Chương 4: LẬP TRÌNH ĐA TIỂU TRÌNH<br />
Khoa CNTT<br />
ĐH GTVT TP.HCM<br />
<br />
Khoa CNTT (ĐH GTVT TP.HCM)<br />
<br />
Java Programming<br />
<br />
1 / 23<br />
<br />
Nội dung<br />
1<br />
<br />
Giới thiệu<br />
<br />
2<br />
<br />
Lập trình multithread<br />
<br />
3<br />
<br />
Giải quyết tương tranh (xung đột) & Đồng bộ hóa<br />
<br />
Khoa CNTT (ĐH GTVT TP.HCM)<br />
<br />
Java Programming<br />
<br />
2 / 23<br />
<br />
Giới thiệu<br />
Concurrency<br />
* Máy tính ngày này cho phép ta sử dụng một lúc nhiều ứng dụng,<br />
chẳng hạn như bạn vừa nghe nhạc, vừa đánh văn bản word, vừa<br />
download nhạc<br />
* Hay thậm chí là một ứng dụng đơn cũng thực hiện nhiều task ở<br />
cùng một thời điểm.<br />
* Ví dụ, trình soạn thảo văn bản word, nó luôn luôn sẵn sàng đáp<br />
ứng các sự kiện về keyboard và mouse, nó vừa phải reformat text<br />
và cập nhật lại màn hình.<br />
* Các phần mềm làm những task như vậy gọi là phần mềm đồng<br />
bộ.<br />
Khoa CNTT (ĐH GTVT TP.HCM)<br />
<br />
Java Programming<br />
<br />
3 / 23<br />
<br />
Multithread<br />
Processes và Thread<br />
* Trong một tiến trình (process) có thể có nhiều threads chạy đồng<br />
thời.<br />
* Các threads chia sẽ cùng một tài nguyên của tiến trình, bao gồm<br />
bộ nhớ và các file, ...<br />
* Điều này làm cho giao tiếp hiệu quả nhưng lại tiềm ẩn bên trong<br />
nó các vấn đề về xử lý tranh chấp tài nguyên giữa các threads.<br />
<br />
Khoa CNTT (ĐH GTVT TP.HCM)<br />
<br />
Java Programming<br />
<br />
4 / 23<br />
<br />
Multithread<br />
Minh họa Multithread<br />
<br />
Khoa CNTT (ĐH GTVT TP.HCM)<br />
<br />
Java Programming<br />
<br />
5 / 23<br />
<br />