1
Chương 6
Sử dụng đa luồng trong lập trình
mạng
2
Mục lục chương
1. Cơ bản về luồng
2. Sử dụng luồng trong Java
3. Đa luồng trong lập trình mạng
4. Lock và deaklock
5. Đồng bộ hóa luồng
6. Non-blocking Server
3
Cơ bản về luồng
Một luồng (thread) là một dòng điểu khiển trong
một chương trình
Không giống như một tiến trình (process), một
luồng không được cấp phát riêng một vùng nhớ
mà dùng chung vùng nhớ với chương trình
chính
Điều này có nghĩa là nếu như chương trình
server có nhiều yêu cầu kết nối đến, thì việc sử
dụng thread sẽ giúp server không bị hết tài
nguyên
4
Cơ bản về luồng
Trong thực tế, khi bất kỳ một chương trình Java
nào được thực hiện thì một luông luôn được tạo
ra
Thread đó là thread chính (main thread) được
tạo ra khi hàm main được thực hiện và được
hủy bỏ khi hàm main kết thúc
Nếu chương trình của ta tạo ra thêm các hàm
khác thì chương trình đó được gọi là đa luồng
(multithread)
Khi máy nh có chỉ có một CPU thì các thread
chỉ được thực hiện tuần tự
5
Sử dụng luồng trong Java
Java là ngôn ngữ hỗ trợ lập trình đa luồng
đầy đủ mà không phải gọi bất kỳ một hàm
API nào
Tuy nhiên việc sử dụng luồng trong lập
trình Java tương đối phức tạo đỏi hỏi sự
cố gắng của lập trình viên