Pagkakaiba sa pagitan ng Runnable at Thread

Talaan ng mga Nilalaman:

Pagkakaiba sa pagitan ng Runnable at Thread
Pagkakaiba sa pagitan ng Runnable at Thread

Video: Pagkakaiba sa pagitan ng Runnable at Thread

Video: Pagkakaiba sa pagitan ng Runnable at Thread
Video: What is difference between Callable and Runnable Interface ?|Java Multi Threading Interview Question 2024, Nobyembre
Anonim

Mahalagang Pagkakaiba – Runnable vs Thread

Ang isang programa na isinasagawa ay kilala bilang isang proseso. Maaaring hatiin ang proseso sa maraming subprocesses. Halimbawa, ang Microsoft Word ay isang proseso. Kasabay nito, sinusuri nito ang pagkakamali sa spelling at grammar. Iyon ay isang subprocess. Ang mga subprocess na ito ay kilala bilang mga thread. Ang multithreading ay ang proseso ng pagpapatupad ng maramihang mga thread nang sabay-sabay. Maaaring buuin ang mga sinulid na application gamit ang iba't ibang programming language. Ang Runnable at Thread ay nauugnay sa Java programming. Mayroong dalawang mga pamamaraan sa Java upang lumikha ng isang thread sa pamamagitan ng pagpapatupad ng isang Runnable interface o pagpapalawak ng klase ng Thread. Kapag nagpapatupad ng Runnable, maraming thread ang maaaring magbahagi ng parehong thread object habang nasa Extending Thread class, ang bawat thread ay may natatanging object na nauugnay dito. Iyon ang pangunahing pagkakaiba sa pagitan ng Runnable at Thread.

Ano ang Runnable?

Ang isang thread ay dumaan sa ilang estado. Ang "bago" ay ang simula ng ikot ng buhay ng thread. Matapos ang start() na paraan ay tumawag sa isang bagong thread, ito ay magiging runnable. Kung pinili ng thread scheduler ang thread, lilipat ito sa running state. Ang thread ay naghihintay para sa estado kung ang thread na iyon ay naghihintay para sa isa pang thread na magsagawa ng isang gawain. Pagkatapos makumpleto ng thread ang gawain, mapupunta ito sa status ng pagwawakas.

Maaaring ipatupad ang isang thread gamit ang Runnable interface. Sumangguni sa programa sa ibaba.

Pagkakaiba sa pagitan ng Runnable at Thread
Pagkakaiba sa pagitan ng Runnable at Thread

Figure 01: Java Program para gumawa ng thread gamit ang Runnable interface

Ayon sa programa sa itaas, ang klase na Runnable Demo ay nagpapatupad ng Runnable na interface. Ang run() method ay nasa loob ng klase na nagpapatupad ng Runnable interface. Ito ang entry point para sa thread. Ang lohika ay nasa run() na pamamaraan. Sa pangunahing programa, ang isang thread ay nilikha sa pamamagitan ng pagtukoy ng isang bagay na na-instantiate mula sa Runnable Demo class. Ito ay t1. Ang start() na paraan ay tinatawag gamit ang t1.

Sumangguni sa programa sa ibaba.

Pagkakaiba sa pagitan ng Runnable at Thread_Figure 02
Pagkakaiba sa pagitan ng Runnable at Thread_Figure 02

Figure 02: Java program para gumawa ng thread para mag-execute ng loop, sa pamamagitan ng pagpapatupad ng Runnable interface

Ayon sa halimbawa sa itaas, ang klase ng Runnable Demo ay nagpapatupad ng Runnable na interface. Ang logic na ipapatupad gamit ang thread ay nakasulat sa run() method. Sa pangunahing programa, ang isang thread ay nilikha sa pamamagitan ng pagtukoy ng isang bagay na na-instantiate mula sa Runnable Demo class. Ito ay t1. Pagkatapos, ang start() na paraan ay tinatawag gamit ang t1.

Ano ang Thread?

Ang iba pang paraan ng paggawa ng thread ay sa pamamagitan ng pagpapahaba ng Thread class. Binubuo ito ng tatlong hakbang. Una ay ideklara ang klase bilang pagpapalawak ng klase ng Thread. Pagkatapos, ang run() na paraan ay dapat isulat. Mayroon itong pagkakasunod-sunod ng mga hakbang na dapat isagawa ng thread. Sa wakas, ang thread object ay nilikha, at ang start() method ay tinatawag upang simulan ang execution ng thread. Sumangguni sa programa sa ibaba.

Pagkakaiba sa pagitan ng Runnable at Thread_Figure 03
Pagkakaiba sa pagitan ng Runnable at Thread_Figure 03

Figure 03: Java program na nagpapalawak ng Thread class

Ayon sa programa sa itaas, ang MyThread class ay nagpapalawak ng Thread class. Ino-override nito ang run method. Ang run() method ay naglalaman ng logic na isasagawa ng thread. Ito ang entry point sa thread. Pagkatapos ay nilikha ang thread object. Ito ay thread1. Sinimulan ang thread gamit ang start() na paraan. Magsasagawa ito ng call to run() method.

Ang isang halimbawang programa ng dalawang klase na nagpapalawak sa klase ng Thread ay ang mga sumusunod.

Pangunahing Pagkakaiba sa pagitan ng Runnable at Thread
Pangunahing Pagkakaiba sa pagitan ng Runnable at Thread

Figure 04: Java program na may dalawang klase na nagpapalawak ng Thread class

Ayon sa programa sa itaas, ang class A at B ay nagpapalawak ng Thread class. Ang parehong mga klase ay may kanilang pagpapatupad ng run() na pamamaraan. Ang pangunahing thread ay ang nagpapatupad ng pangunahing() na pamamaraan. Bago mamatay ang pangunahing thread, lumilikha ito at magsisimula ng thread1 at thread2. Sa oras na ang pangunahing thread ay umabot sa dulo ng pangunahing pamamaraan, tatlong mga thread ay tumatakbo sa parallel. Walang tiyak na pagkakasunud-sunod kung saan ang mga thread ay nagbibigay ng output. Kapag nagsimula na ang thread, mahirap na magpasya kung anong order ang gagawin nila. Nagsasarili silang tumatakbo.

Ano ang Pagkakatulad sa pagitan ng Runnable at Thread?

Gumagamit ang dalawa para gumawa ng thread sa Java

Ano ang Pagkakaiba sa pagitan ng Runnable at Thread?

Runnable vs Thread

Ang Runnable ay isang interface sa Java para gumawa ng thread na nagbibigay-daan sa maraming thread na magbahagi ng parehong thread object. Ang thread ay isang klase sa Java para gumawa ng thread kung saan ang bawat thread ay may natatanging bagay na nauugnay dito.
Memory
Sa Runnable, maraming thread ang nagbabahagi ng parehong bagay, kaya nangangailangan ng mas kaunting memorya. Sa klase ng Thread, ang bawat thread ay lumilikha ng isang natatanging bagay, samakatuwid ay nangangailangan ng higit pang memorya.
Pagpapalawak ng Kakayahan
Pagkatapos ipatupad ang Runnable interface, maaari itong mag-extend ng isang klase. Maraming inheritance ay hindi sinusuportahan sa Java. Pagkatapos palawigin ang klase ng Thread, hindi na ito makakapagpalawig ng anumang klase.
Pagpapanatili ng Code
Ang Napapatakbo na interface ay ginagawang mas mapanatili ang code. Sa klase ng Thread, nakakaubos ng oras ang pagpapanatili.

Buod – Runnable vs Thread

Ang isang proseso ay nahahati sa maraming sub-proseso upang magsagawa ng maraming gawain nang sabay-sabay. Ang mga subprocess na ito ay kilala bilang mga thread. Ang pag-instantiate ng isang thread ay maaaring gawin sa pamamagitan ng pagpapatupad ng Runnable na interface o sa pamamagitan ng pagpapalawak ng Thread Class. Madaling palawigin ang klase ng Thread, ngunit hindi ito isang mas mahusay na kasanayan sa Object-Oriented Programming. Kapag nagpapatupad ng Runnable, maraming mga thread ang maaaring magbahagi ng parehong thread object habang sa pagpapalawak ng Thread class bawat thread ay may natatanging object na nauugnay dito. Iyon ang pagkakaiba sa pagitan ng Runnable at Thread. Sa klase ng Thread, ang paggawa ng maraming bagay ay maaaring kumonsumo ng mas maraming memorya.

I-download ang PDF ng Runnable vs Thread

Maaari mong i-download ang PDF na bersyon ng artikulong ito at gamitin ito para sa mga offline na layunin ayon sa tala ng pagsipi. Paki-download ang bersyon ng PDF dito Pagkakaiba sa pagitan ng Runnable at Thread

Inirerekumendang: