Lập trình đa tiến trình (multithread) trong Java | Myclass.vn

Thread là đơn vị nhỏ nhất trong code của chương trình mà có thể thực thi một công việc riêng biệt. Một thread bao gồm: một định danh (thread ID), một bộ đếm chương trình, một tập thanh ghi và ngăn xếp. Mỗi thread chia sẻ với các thread khác trong cùng một tiến trình về mã, dữ liệu, và tài nguyên hệ điều hành như các tập tin đang mở và các tín hiệu.
Multithread

Ví dụ về đa luồng: Để dễ hiểu ta có thể lấy ví dụ về đa luồng như sau. Chúng ta vừa mở chương trình nghe nhạc, vừa mở chương trình Word, mở thêm chương trình đồ họa, máy tính vẫn có thể xử lý được. Trong trường hợp này có thể nói là cùng một lúc máy tính thực hiện nhiều công việc khác nhau. Nếu gọi một chương trình trong số các chương trình mà máy tính đang thực hiện là một luồng (thread) thì trong trường hợp này máy tính đang thực hiện ở chế độ đa luồng.
Java hỗ trợ cho việc lập trình đa luồng( lập trình đa tiến trình). Một ứng dụng đa luồng gồm nhiều phần có thể chạy đồng thời. Các phần đó được gọi là thread, và mỗi thread đó định nghĩa một hướng thực thi riêng biệt. Như vậy multithreading là dạng đặc biệt của multitasking. Multithreading cho phép bạn viết các ứng dụng sử dụng CPU một cách hiệu quả, vì nó giảm thiểu thời gian nhàn rỗi của CPU.

Một chương trình Java có thể khởi động nhiều thread và các thread này được chạy song song với nhau. Nếu bạn máy tính của bạn chỉ có một processor thì nó vẫn có thể chạy các task song song.

Trên một máy tính mà có nhiều processor (multiprocessor computer), các luồng (thread) song song có thể chạy trên các CPU khác nhau. Trên một máy tính chỉ có một processor (single-processor computer), các thread sẽ được thực thi luân phiên trong thời gian chuyển hoạt động của processor.

Trong khóa học này chúng tôi sẽ giới thiệu các bạn cách tạo các thread, cách đồng bộ và xử lý các Thread. Các khái niệm Thread Pool, CountDownLatch, Producer và Customer, Wait và Notify, Reentrant Locks, DeadLock, Semaphore, Callable và Future được chúng tôi biên soạn và hướng dẫn rất chi tiết để giúp các bạn hiểu một cách chi tiết và cặn kẻ về lập trình đa luồng (đa tiến trình) – multithread trong Java.