Sự khác biệt giữa Runnable và Thread

Sự khác biệt chính - Runnable vs chủ đề
 

Một chương trình trong thực thi được gọi là một quá trình. Quá trình có thể được chia thành nhiều quy trình con. Ví dụ: Microsoft Word là một quá trình. Đồng thời, nó kiểm tra lỗi chính tả và ngữ pháp. Đó là một quy trình con. Các quy trình con này được gọi là chủ đề. Đa luồng là quá trình thực thi đồng thời nhiều luồng. Các ứng dụng luồng có thể được xây dựng bằng các ngôn ngữ lập trình khác nhau. Runnable và Thread được liên kết với lập trình Java. Có hai phương thức trong Java để tạo một luồng bằng cách triển khai giao diện Runnable hoặc mở rộng lớp Thread. Khi triển khai Runnable, nhiều luồng có thể chia sẻ cùng một đối tượng luồng trong khi trong lớp Mở rộng luồng, mỗi luồng có một đối tượng duy nhất được liên kết với nó. Đó là sự khác biệt chính giữa Runnable và Thread.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Runnable là gì
3. Chủ đề là gì
4. Điểm tương đồng giữa Runnable và Thread
5. So sánh cạnh nhau - Runnable vs Thread ở dạng bảng
6. Tóm tắt

Runnable là gì?

Một chủ đề đi qua một số tiểu bang. Bản tin mới của New York là sự khởi đầu của vòng đời luồng. Sau khi phương thức start () gọi một luồng mới, nó sẽ chạy được. Nếu bộ lập lịch luồng chọn luồng, nó sẽ chuyển sang trạng thái chạy. Chuỗi đang chờ trạng thái nếu luồng đó đang chờ một luồng khác thực hiện một tác vụ. Sau khi hoàn thành công việc, nó đi đến trạng thái kết thúc.

Một luồng có thể được thực hiện bằng giao diện Runnable. Tham khảo chương trình dưới đây.

Hình 01: Chương trình Java để tạo một luồng bằng giao diện Runnable

Theo chương trình trên, lớp Runnable Demo thực hiện giao diện Runnable. Phương thức run () nằm trong lớp thực hiện giao diện Runnable. Đây là điểm vào cho chủ đề. Logic nằm trong phương thức run (). Trong chương trình chính, một luồng được tạo bằng cách định nghĩa một đối tượng được khởi tạo từ lớp Runnable Demo. Đó là t1. Phương thức start () được gọi bằng t1.

Tham khảo chương trình dưới đây.

Hình 02: Chương trình Java để tạo một luồng để thực hiện một vòng lặp, bằng cách thực hiện giao diện Runnable

Theo ví dụ trên, lớp Runnable Demo thực hiện giao diện Runnable. Logic để thực thi bằng cách sử dụng luồng được viết bằng phương thức run (). Trong chương trình chính, một luồng được tạo bằng cách định nghĩa một đối tượng được khởi tạo từ lớp Runnable Demo. Đó là t1. Sau đó, phương thức start () được gọi bằng t1.

Chủ đề là gì?

Phương thức khác để tạo một luồng là bằng cách mở rộng lớp Thread. Nó bao gồm ba bước. Đầu tiên là khai báo lớp là mở rộng lớp Thread. Sau đó, nên viết phương thức run (). Nó có trình tự các bước mà chủ đề nên thực hiện. Cuối cùng, đối tượng luồng được tạo và phương thức start () được gọi để bắt đầu thực hiện luồng. Tham khảo chương trình dưới đây.

Hình 03: Chương trình Java mở rộng lớp Thread

Theo chương trình trên, lớp MyThread mở rộng lớp Thread. Nó ghi đè phương thức chạy. Phương thức run () chứa logic được thực thi bởi luồng. Đây là điểm vào chủ đề. Sau đó, đối tượng luồng được tạo. Đây là chủ đề1. Chuỗi được bắt đầu bằng phương thức start (). Nó sẽ thực thi một phương thức gọi để chạy ().

Một chương trình ví dụ về hai lớp mở rộng lớp Thread như sau.

Hình 04: Chương trình Java với hai lớp mở rộng lớp Thread

Theo chương trình trên, cả lớp A và B đều mở rộng lớp Thread. Cả hai lớp đều thực hiện phương thức run (). Chủ đề chính là thực thi phương thức main (). Trước khi luồng chính chết, nó tạo và bắt đầu thread1 và thread2. Vào thời điểm luồng chính kết thúc phương thức chính, ba luồng đang chạy song song. Không có thứ tự cụ thể trong đó các chủ đề cho đầu ra. Một khi luồng được bắt đầu, thật khó để quyết định thứ tự chúng sẽ thực thi. Họ chạy độc lập.

Điểm giống nhau giữa Runnable và Thread?

  • Cả hai đều đang sử dụng để tạo một luồng trong Java.

Sự khác biệt giữa Runnable và Thread?

Runnable vs Chủ đề

Runnable là một giao diện trong Java để tạo ra một luồng cho phép nhiều luồng chia sẻ cùng một đối tượng luồng. Chuỗi này là một lớp trong Java để tạo ra một luồng trong đó mỗi luồng có một đối tượng duy nhất được liên kết với nó.
 Ký ức
Trong Runnable, nhiều luồng chia sẻ cùng một đối tượng, do đó cần ít bộ nhớ hơn. Trong lớp Thread, mỗi luồng tạo một đối tượng duy nhất, do đó cần nhiều bộ nhớ hơn.
Mở rộng khả năng
Sau khi thực hiện giao diện Runnable, nó có thể mở rộng một lớp. Nhiều kế thừa không được hỗ trợ trong Java. Sau khi mở rộng lớp Thread, nó không thể mở rộng bất kỳ lớp nào khác.
 Mã bảo trì
Giao diện runnable làm cho mã dễ bảo trì hơn. Trong lớp Thread, việc duy trì rất tốn thời gian.

Tóm tắt - Runnable vs chủ đề 

Một quy trình được chia thành nhiều quy trình phụ để thực hiện nhiều nhiệm vụ cùng một lúc. Các quy trình con này được gọi là chủ đề. Khởi tạo một luồng có thể được thực hiện bằng cách triển khai giao diện Runnable hoặc bằng cách mở rộng Lớp luồng. Thật dễ dàng để mở rộng lớp Thread, nhưng nó không phải là một thực hành lập trình hướng đối tượng tốt hơn. Khi triển khai Runnable, nhiều luồng có thể chia sẻ cùng một đối tượng luồng trong khi mở rộng lớp Thread, mỗi luồng có một đối tượng duy nhất được liên kết với nó. Đó là sự khác biệt giữa Runnable và Thread. Trong lớp Thread, việc tạo nhiều đối tượng có thể tiêu tốn nhiều bộ nhớ hơn.

Tải xuống bản PDF của Runnable vs Thread

Bạn có thể tải xuống phiên bản PDF của bài viết này và sử dụng nó cho mục đích ngoại tuyến theo ghi chú trích dẫn. Vui lòng tải xuống phiên bản PDF tại đây Sự khác biệt giữa Runnable và Thread

Tài liệu tham khảo:

1.tutorialspoint.com. Đa chức năng Java Java. Điểm, có sẵn ở đây 
2.Pramodbablad. Phần mềm mở rộng chủ đề Vs có thể chạy được trong Java. Khái niệm Java trong ngày, 11 tháng 11 năm 2016. Có sẵn tại đây
3.Ways để tạo một chủ đề trong đa luồng Java | Hướng dẫn cốt lõi Java | Học tập Có sẵn ở đây