![](images/graphics/blank.gif)
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
![](https://tailieu.vn/static/b2013az/templates/version1/default/images/down16x21.png)
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
![](images/graphics/blank.gif)
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 |
160 |
11
-
Bài giảng Công nghệ lập trình tiên tiến: Chương 1 - ĐH Công nghệ Đồng Nai
59 p |
106 |
9
-
Bài giảng Công nghệ lập trình tiên tiến: Chương 2 - ĐH Công nghệ Đồng Nai
93 p |
83 |
9
-
Bài giảng Công nghệ lập trình tiên tiến: Chương 4 - ĐH Công nghệ Đồng Nai
164 p |
91 |
9
-
Bài giảng Công nghệ lập trình tiên tiến: Chương 3 - ĐH Công nghệ Đồng Nai
86 p |
91 |
7
-
Bài giảng Công nghệ lập trình tiên tiến: Chương 5 - ĐH Công nghệ Đồng Nai
74 p |
76 |
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 |
11 |
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 |
13 |
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 |
12 |
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 |
12 |
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 |
21 |
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 |
10 |
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 |
10 |
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 |
14 |
3
![](images/icons/closefanbox.gif)
![](images/icons/closefanbox.gif)
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
![](https://tailieu.vn/static/b2013az/templates/version1/default/js/fancybox2/source/ajax_loader.gif)