YOMEDIA
ADSENSE
Bài 7: Giới thiệu vềThreads
94
lượt xem 23
download
lượt xem 23
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Tham khảo tài liệu 'bài 7: giới thiệu vềthreads', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài 7: Giới thiệu vềThreads
- Bài 07 Giới thiệu về Threads
- Nội dung chính Định nghĩa threads Định nghĩa về multithreading Lợi ích của multithreading Tạo threads Thảo luận về trạng thái của Threads Quản lý threads Thiết lập thuộc tính cho threads Tìm hiểu về daemon thread Bài 07 2 / 22
- Multitasking & Multithreading Multitasking là khả năng chạy 1 or nhiều chương trình cùng lúc. Operating system sẽ điều khiển bằng cách lập lịch cho các chương trình đó. Multithreading là khả năng thực hiện các phần khác nhau của một chương trình một cách độc lập nhau. Bài 07 3 / 22
- Thread Thread là một đoạn mã nhỏ nhất mà có thể thực thi được, nó thực thi một nhiệm vụ cụ thể nào đó. Một ứng dụng có thể chia làm nhiều nhiệm vụ, mỗi nhiệm vụ có thể gán cho một thread Nhiều thread cùng thực hiện đồng thời, gọi là Multithreading. Các thread có vẻ như thực hiện đồng thời, nhưng thực tế ko phải vậy… Bài 07 4 / 22
- Ưu điểm của Multithreading Multithreading có chi phí thấp hơn multitasking (về không gian, t/g) Trong multitasking, các tiến trình chạy trên các địa chỉ riêng biệt Các thread trong multithreading có thể chia sẻ cùng không gian bộ nhớ. Các tiến trình trong multitasking gọi nhau phải chịu chi phí lơn hơn các thread trong multithreading. Multithreading cho phép chúng ta thiết kế chương trình hiệu quả hơn mà sử dụng ít tài nguyên CPU Multithreading còn cho phép chúng ta điều khiển cho các thread sleep một t/g trong khi các thread khác vẫn hoạt động mà ko làm cho hệ thống bị pause. Bài 07 5 / 22
- ứng dụng của thread Vừa nghe nhạc, vừa xem ảnh đồng thời Hiển thị cùng lúc nhiều ảnh trên màn hình Tính toán 2 phép tính đồng thời Bài 07 6 / 22
- Tạo threads Khi chương trình java thực hiện thì luôn có một thread chạy đó là thread main Chương trình sẽ bị ngắt quãng khi thread main bị stop. Main thread có thể được điều khiển thông qua đối tượng thread. Tham chiếu đến main thread có thể nhận được bằng cách gọi method currentThread() của lớp Thread. Bài 07 7 / 22
- Tạo thread Đối tượng thread có thể được tạo theo 2 cách: Định nghĩa một lớp là lớp con của lớp Thread được định nghĩa trong gói java.lang class mythread extends Thread Định nghĩa một lớp là implements của Runnable interface. class mythread implements Runnable Bài 07 8 / 22
- Tạo thread Sau khi một thread mới được khởi tạo, chúng ta có thể gọi phương thức start()để start một thread, trái lại nó sẽ là một đối tượng thread rỗng, ko được cấp phát tài nguyên. Mythread t = new Mythread(); t.start(); Khi phương thức start() được gọi, thì tài nguyên hệ thống sẽ được cấp phát cho thread đó và nó sẽ được lập lịch để chạy. Sau đó phải gọi phương thức run() Bài 07 9 / 22
- Tạo thread Ví dụ Tạo một thread bằng cách kế thừa lớp Thread. class MyThread extends Thread { public static void main(String args[]) public void run() { { Output MyThread Objex = new MyThread(); while(true) Objex.create(); { System.out.println("This is the main thread"); try } { System.out.println("This is the child thread"); public void create() Thread.sleep(500); { } Thread Objth = new Thread(this); catch(InterruptedException e) Objth.start(); { } } } } } Bài 07 10 / 22
- Tạo thread ví dụ 2: Tạo thread từ việc implement Runnable interface class MyThread2 implements Runnable { public static void main(String args[]) public void run() { { Output MyThread2 Objx = new MyThread2(); while(true) Objx.create(); { System.out.println("This is the main thread"); try } { System.out.println("This is the child thread"); public void create() Thread.sleep(500); { } Thread Objth = new Thread(this); catch(InterruptedException e) Objth.start(); { } } } } } Bài 07 11 / 22
- Trạng thái của Thread Born: một thread vừa được tạo ra thì nó ở trạng thái born. Ready: Sau khi thread được tạo, nó ở trạng thái sẵn sàng đợi phương thức start() được gọi. Bài 07 12 / 22
- Trạng thái của thread Running: Thread ở trạng thái running khi phương thực start đã được gọi Sleeping: thread đang hoạt động cũng có thể bị ngắt quãng bằng cách gọi phương thức sleep(). Thread sẽ chuyển sang trạng thái sleeping một khoảng thời gian. Bài 07 13 / 22
- Trạng thái của thread Waiting: Thread sẽ ở trạng thái này khi phương thức wait() được gọi. Nó được sử dụng khi 2 hay nhiều thread chạy cùng nhau. Blocked: thread rơi vào trạng thái này khi nó đợi dữ liệu như thao tác input/output. Dead: thread rơi vào trạng thái này khi phương thức run() kết thúc hoặc phương thức stop() được gọi. Bài 07 14 / 22
- Các trạng thái của thread New Thread (BORN) READY SLEEPING RUNNING WAITING BLOCKED DEAD Bài 07 15 / 22
- Một số method của lớp thread final boolean isAlive(): trả về giá trị true nếu thread còn tồn tại final String getName(): trả về tên của thread. void start(): Bài 07 16 / 22
- Một số method của lớp thread final void join() throws InterruptedException: đợi cho đến khi thread die. static void yield(): thread hiện tại sẽ tạm ngừng để thread khác chạy. final void setName(String name): Bài 07 17 / 22
- Một số method của lớp thread final boolean isDaemon(): kiểm tra xem có phải là Daemon thread ko. static int activeCount(): đếm số thread đang hoạt động static void sleep(): Bài 07 18 / 22
- Quản lý thread Thread có thể được xét mức ưu tiên khác nhau (là các hằng của lớp Thread) – value is NORM_PRIORITY – value is MAX_PRIORITY – value is MIN_PRIORITY Giá trị mặc định là: NORM_PRIORITY 2 phương thức để thiết lập priority: final void setPriority(int newp): thay đổi mức ưu tiên hiện tại final int getPriority(): trả về mức ưu tiên. Bài 07 19 / 22
- Daemon threads 2 loại thread trong java: User threads: đc tạo bởi người dùng Daemon threads: các thread làm việc dưới background và nó cung cấp dịch vụ cho các thread khác. Ví dụ: – the garbage collector thread Khi thread của người dùng thoát, JVM sẽ kiểm tra xem còn các thread nào đang chạy ko? Nếu có thì nó sẽ lập lịch cho các thread đó Nếu chỉ có Daemon thread hoạt động thì nó sẽ thoát. Bài 07 20 / 22
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
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