Phương pháp viết code đa luồng trong java

 

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

  1. 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.

  1. 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://nhanhoa.com/ thông qua HOTLINE 1900 6680 để được hỗ trợ các vấn đề liên quan bạn nhé!

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *