Bài giảng Công nghệ lập trình tích hợp: Chương 6 - TS. Nguyễn Quang Uy
lượt xem 3
download
Bài giảng Công nghệ lập trình tích hợp: Chương 6 Sử dụng đa luồng trong lập trình mạng, cung cấp cho người đọc những kiến thức như: Cơ bản về luồng; Sử dụng luồng trong Java; Đa luồng trong lập trình mạng; Lock và deaklock; Đồng bộ hóa luồng; Non-blocking Server;... Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Công nghệ lập trình tích hợp: Chương 6 - TS. Nguyễn Quang Uy
- Chương 6 Sử dụng đa luồng trong lập trình mạng 1
- 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 2
- 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 3
- 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 tính có chỉ có một CPU thì các thread chỉ được thực hiện tuần tự 4
- 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 5
- Sử dụng luồng trong Java • Trong java có hai cách để tạo ra các luông đó là: – Tạo ra một lớp thừa kế từ lớp Thread – Tạo ra một lớp không thừa kế từ lớp Thread nhưng cài đặt giao tiếp Runnable 6
- Thừa kế lớp Thread • Phương thức run của lớp Thread chỉ ra hành động là Thread được thực hiện. • Tuy nhiên cũng như phương thức main, phương thức run có thể không được gọi ra một cách trực tiếp. • Ta có thể gọi đến phương thức start, và phương thức này sẽ tự động gọi đến phương thức run. 7
- Thừa kế lớp Thread • Lớp Thread có 7 hàm tạo và hai hàm tạo được sử dụng phổ biết nhất là – Thread() – Thread(String) – Nếu gọi hàm thứ 2 thì ta cần chỉ ra tên của thread, Nếu gọi hàm thứ nhất thì tên của thread sẽ là: Thread-n 8
- Thừa kế lớp Thread • Phương thức getName có thể được sử dụng để nhận lại tên của Thread – Thread firstThread = new Thread(); – Thread secondThread = new Thread("namedThread"); – System.out.println(firstThread.getName()); – System.out.println(secondThread.getName()); 9
- Thừa kế lớp Thread • Phương thức sleep được sử dụng để tạm dùng thread trong một khoảng thời gian (miniseconds) – myThread.sleep(1500); • Phương thức interrupt được sử dụng để phá vỡ một thread đang sleeping 10
- Ví dụ 1 về Thread • public class ThreadShowName extends Thread • { • public static void main(String[] args) • { • ThreadShowName thread1, thread2; • thread1 = new ThreadShowName(); • thread2 = new ThreadShowName(); • thread1.start(); • thread2.start(); • } 11
- Ví dụ 1 về Thread • public void run(){ • int pause; • for (int i=0; i
- Ví dụ 2 về sử dụng Thread • public class ThreadHelloCount • { • public static void main(String[] args) • { • HelloThread hello = new HelloThread(); • CountThread count = new CountThread(); • hello.start(); • count.start(); • } • } 13
- Ví dụ 2 về sử dụng Thread • class HelloThread extends Thread • { • public void run() • { • int pause; • for (int i=0; i
- Ví dụ 2 về sử dụng Thread • class CountThread extends Thread • { • int pause; • public void run() • { • for (int i=0; i
- Cài đặt giao tiếp Runnable • Phương pháp này tương tự như phương pháp đã mô tả trước • Đầu tiên ta tạo ra một lớp ứng dụng cài đặt giao tiếp Runnable • Sau đó để tạo ra các thread ta tạo ra đối tượng của lớp Runnable sau đó chuyển kiểu thành kiểu thread 16
- Cài đặt giao tiếp Runnable • Để thực hiên điều đó ta tạo ra một đối tượng Thread và truyền đối tượng Runnable như là một tham số của nó • Có hai hàm tạo của lớp Thread cho phép ta làm điều này: – Thread (Runnable ) – Thread(Runnable , String ) – (The second of these allows us also to name the thread.) 17
- Ví dụ 3 về Thread • public class RunnableShowName implements Runnable • { • public static void main(String[] args) • { • Thread thread1 = new Thread(new RunnableShowName()); • Thread thread2 = new Thread(new RunnableShowName()); • thread1.start(); • thread2.start(); • } 18
- Ví dụ 3 về Thread • public void run() • { • int pause; • for (int i=0; i
- Ví dụ 4 về Thread • public class RunnableHelloCount implements Runnable • { • private Thread thread1, thread2; • public static void main(String[] args) • { • RunnableHelloCount threadDemo = • new RunnableHelloCount(); • } 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Công nghệ lập trình tiên tiến: Chương 0 - ĐH Công nghệ Đồng Nai
8 p | 151 | 11
-
Bài giảng Công nghệ phần mềm: Bài 6 - Học viện Kỹ thuật Quân sự
43 p | 18 | 10
-
Bài giảng Công nghệ thông tin: Ngôn ngữ lập trình
38 p | 32 | 7
-
Bài giảng Công nghệ lập trình tích hợp: Chương 4.2 - TS. Nguyễn Quang Uy
19 p | 10 | 4
-
Bài giảng Công nghệ lập trình tích hợp: Chương 4.1 - TS. Nguyễn Quang Uy
25 p | 10 | 4
-
Bài giảng Công nghệ lập trình tích hợp: Chương 4.0 - TS. Nguyễn Quang Uy
40 p | 12 | 4
-
Bài giảng Công nghệ lập trình tích hợp: Chương 2.1 - TS. Nguyễn Quang Uy
28 p | 11 | 4
-
Bài giảng Công nghệ lập trình tích hợp: Chương 2.0 - TS. Nguyễn Quang Uy
59 p | 11 | 4
-
Bài giảng Công nghệ lập trình tích hợp: Chương 1 - TS. Nguyễn Quang Uy
31 p | 14 | 4
-
Bài giảng Công nghệ lập trình tích hợp: Chương 3 - TS. Nguyễn Quang Uy
38 p | 8 | 3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 0 - TS. Nguyễn Quang Uy
9 p | 19 | 3
-
Bài giảng Công nghệ phần mềm: Phần 4 - Vũ Thị Hương Giang
23 p | 29 | 3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 5 - TS. Nguyễn Quang Uy
48 p | 8 | 3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 7 - TS. Nguyễn Quang Uy
39 p | 9 | 3
-
Bài giảng Công nghệ lập trình tích hợp: Chương 8 - TS. Nguyễn Quang Uy
42 p | 13 | 3
-
Bài giảng Công nghệ Java: Bài 3.1 - Nguyễn Hữu Thể
48 p | 41 | 2
-
Bài giảng Công nghệ lập trình tích hợp: Chương 4.3 - TS. Nguyễn Quang Uy
20 p | 8 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn