intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài 7: Giới thiệu vềThreads

Chia sẻ: Ptit Ptit | Ngày: | Loại File: PPT | Số trang:34

94
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ả

Chủ đề:
Lưu

Nội dung Text: Bài 7: Giới thiệu vềThreads

  1. Bài 07 Giới thiệu về Threads
  2. 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
  3. 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
  4. 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
  5. Ư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
  6. ứ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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. Các trạng thái của thread  New Thread (BORN) READY SLEEPING RUNNING WAITING BLOCKED DEAD Bài 07 15 / 22
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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

 

Đồng bộ tài khoản
2=>2