Phương pháp viết code đa luồng hẳn không còn xa lạ với lập trình viên. Những cải tiến mới nhất trong lĩnh vực công nghệ đã cho phép người dùng thực thi nhiều tác vụ song song với nhau. Đặc biệt là phiên bản Java 1.0 đã cho viết code đa luồng trong Java. Phương pháp này tối ưu được những gì và có những cách nào để thao tác, chúng ra cùng tìm hiểu qua bài viết này nhé.
Sử dụng Callable với ExecutorService
Mới đây nhất, trong phiên bản 1.5 Java giới thiệu Callable mới
Callable vừa ra mắt một phiên bản Java cập nhật 1.5 có mức độ tương tự khá giống với Runnable. Khác biệt là phương thức trên có thể thực hiện trả về một giá trị. Nó cũng có thể khai báo một Exception đã được người dùng đưa vào.
Khai báo một Exception đã được người dùng đưa vào
- Mở rộng lớp Thread
Ngôn ngữ lập trình Java cung cấp lớp Thread nhằm mục đích mở rộng để thực hiện tác vụ. Khi bạn khởi động các tác vụ trong thread riêng thì chúng có thể tạo ra instance trong class này và gọi start().
Câu lệnh này sẽ khởi động để thread và chạy để hoàn thành (hoặc chấm dứt) tác vụ. Luồng worker trên sẽ được kích hoạt để thực hiện các thao tác trên bằng cách gọi phương thức start() của nó.
Nếu không có bất kỳ câu lệnh Action nào sau khi bắt đầu luồng hoạt động của Worker thì luồng chính sẽ đợi luồng Worker hoạt động xong rồi mới thoát khỏi chương trình.
- Triển khai Runnable với ExecutorService
Tại phiên bản 1.5 này thì ngôn ngữ Java có thêm ExecutorService hoạt động giống mô hình có nhiều hình dạng khác nhau với vai trò là tạo và quản lý các luồng trong một chương trình.
Triển khai đa luồng bằng cách sử dụng những ngôn ngữ code từ đó tạo các luồng. Bạn có thể triển khai nhiều tác vụ trong một nhóm luồng ngay cùng một thời điểm.
Ngoài ra, Java còn sử dụng luồng riêng biệt cho mỗi tác vụ. Nhờ đó, chương trình có thể theo dõi và quản lý xem có bao nhiêu luồng được sử dụng cho các tác vụ worker.
Phương pháp quản lý được số luồng đưa vào
Sử dụng Thread Instance với Runnable
Runnable có nhiệm vụ duy trì hoạt động của các Worker, thực thi tác vụ trong phương thức run().
Chúng ta sẽ Start worker bằng cách tạo ra một instance trên các lớp worker và thực hiện nó thông qua các giao tiếp để kết nối với instance Thread.
Trong khi tạo luồng thì phương thức Start() trong lõi của từng Thread sẽ gọi chúng ra và có nhiệm vụ phân luồng đặc biệt cho từng luồng.
Với những so sánh trên về một vài lựa chọn phương pháp để viết đa luồng trong Java. Hy vọng bạn có thể chọn được cho mình một cách phù hợp. Nếu còn gì thắc mắc có thể liên hệ với mình theo trang web: https://litado.net/ thông qua HOTLINE để được hỗ trợ các vấn đề liên quan bạn nhé!
Tin cùng chuyên mục:
Có nên sử dụng bàn phím bluetooth hay không?
Tại Sao Nên Làm Cửa Nhôm Kính Cho Nhà Phố
Đánh giá Hublot Big Bang Replica Sang Bleu II 8007.RX.MXM21 1:1
Nhà máy Bách Khoa Việt Nam: Đơn vị sản xuất ống gió chống cháy đạt chuẩn