Sleutelverskil – Hardloopbaar teenoor draad
'n Program wat uitgevoer word, staan bekend as 'n proses. Die proses kan in verskeie subprosesse verdeel word. Byvoorbeeld, Microsoft Word is 'n proses. Terselfdertyd kyk dit vir die spelfout en grammatika. Dit is 'n subproses. Hierdie subprosesse staan bekend as drade. Multithreading is die proses om verskeie drade gelyktydig uit te voer. Geskroefde toepassings kan met verskillende programmeertale gebou word. Runnable en Thread word geassosieer met Java-programmering. Daar is twee metodes in Java om 'n draad te skep deur 'n Runnable-koppelvlak te implementeer of die Thread-klas uit te brei. Wanneer Runnable geïmplementeer word, kan baie drade dieselfde draadvoorwerp deel terwyl elke draad 'n unieke objek daarmee geassosieer is in die Uitbreidende draad-klas. Dit is die belangrikste verskil tussen Runnable en Thread.
Wat is hardloopbaar?
'n Draad gaan deur sommige state. Die "nuwe" is die begin van die draadlewensiklus. Nadat die start()-metode 'n nuwe draad aanroep, word dit hardloopbaar. As die draadskeduleerder die draad kies, gaan dit oor na die lopende toestand. Die draad wag vir die toestand as daardie draad wag vir 'n ander draad om 'n taak uit te voer. Nadat die draad die werk voltooi het, gaan dit na die beëindigingstoestand.
'n Draad kan geïmplementeer word deur die Runnable-koppelvlak te gebruik. Verwys na die onderstaande program.
Figuur 01: Java-program om 'n draad te skep deur gebruik te maak van Runnable-koppelvlak
Volgens bogenoemde program implementeer die klas Runnable Demo die Runnable-koppelvlak. Die run()-metode is binne die klas wat Runnable-koppelvlak implementeer. Dit is die toegangspunt vir die draad. Die logika is in die run() metode. In die hoofprogram word 'n draad geskep deur 'n voorwerp te definieer wat vanaf Runnable Demo-klas geïnstansieer is. Dit is t1. Die start()-metode word genoem deur t1. te gebruik
Verwys na die onderstaande program.
Figuur 02: Java-program om 'n draad te skep om 'n lus uit te voer, deur die Runnable-koppelvlak te implementeer
Volgens bogenoemde voorbeeld implementeer die klas Runnable Demo Runnable-koppelvlak. Die logika om uit te voer met die draad is geskryf in run() metode. In die hoofprogram word 'n draad geskep deur 'n voorwerp te definieer wat vanaf Runnable Demo-klas geïnstansieer is. Dit is t1. Dan word die start()-metode opgeroep deur t1. te gebruik
Wat is draad?
Die ander metode om 'n draad te skep, is deur die Thread-klas uit te brei. Dit bestaan uit drie stappe. Eerstens is om die klas te verklaar as 'n uitbreiding van die Thread-klas. Daarna moet die run() metode geskryf word. Dit het die volgorde van stappe wat die draad moet uitvoer. Laastens word die draadvoorwerp geskep, en die start() metode word opgeroep om die uitvoering van die draad te begin. Verwys na die onderstaande program.
Figuur 03: Java-program wat Thread-klas uitbrei
Volgens bogenoemde program, verleng die MyThread-klas Thread-klas. Dit ignoreer die hardloopmetode. Die run() metode bevat die logika wat deur die draad uitgevoer moet word. Dit is die toegangspunt tot die draad. Dan word die draadvoorwerp geskep. Dit is draad1. Die draad word begin met die start() metode. Dit sal 'n oproep om te hardloop() metode uitvoer.
'n Voorbeeldprogram van twee klasse wat die Thread-klas verleng, is soos volg.
Figuur 04: Java-program met twee klasse wat Thread-klas verleng
Volgens bogenoemde program, brei beide klas A en B Thread-klas uit. Beide klasse het hul implementering van die run() metode. Die hoofdraad is wat die hoof() metode uitvoer. Voordat hoofdraad doodgaan, skep en begin dit thread1 en thread2. Teen die tyd dat die hoofdraad die einde van die hoofmetode bereik het, loop drie drade parallel. Daar is geen spesifieke volgorde waarin die drade uitset gee nie. Sodra die draad begin is, is dit moeilik om te besluit watter volgorde hulle sal uitvoer. Hulle hardloop onafhanklik.
Wat is die ooreenkomste tussen loopbaar en draad?
Albei gebruik om 'n draad in Java te skep
Wat is die verskil tussen hardloopbaar en draad?
Runnable vs Thread |
|
Runnable is 'n koppelvlak in Java om 'n draad te skep wat baie drade toelaat om dieselfde draadvoorwerp te deel. | Die draad is 'n klas in Java om 'n draad te skep waar elke draad 'n unieke voorwerp het wat daarmee geassosieer word. |
Memory | |
In loopbaar deel veelvuldige drade dieselfde voorwerp, dus vereis minder geheue. | In Thread-klas skep elke draad 'n unieke voorwerp, en vereis dus meer geheue. |
Uitbreidingsvermoë | |
Na die implementering van Runnable-koppelvlak, kan dit 'n klas verleng. | Veelvuldige erfporsies word nie in Java ondersteun nie. Nadat Thread-klas verleng is, kan dit geen ander klas verleng nie. |
Kodeonderhoudbaarheid | |
Lopbare koppelvlak maak kode meer onderhoubaar. | In Thread-klas is instandhouding tydrowend. |
Opsomming – Hardloopbaar vs Thread
'n Proses word in verskeie subprosesse verdeel om verskeie take gelyktydig uit te voer. Hierdie subprosesse staan bekend as drade. Die instansie van 'n draad kan gedoen word deur die Runnable-koppelvlak te implementeer of deur die Thread Class uit te brei. Dit is maklik om die Thread-klas uit te brei, maar dit is nie 'n beter objekgeoriënteerde programmeringspraktyk nie. Wanneer Runnable geïmplementeer word, kan baie drade dieselfde draadvoorwerp deel terwyl in die uitbreiding van Thread-klas elke draad 'n unieke voorwerp daarmee geassosieer het. Dit is die verskil tussen Runnable en Thread. In Thread-klas kan veelvuldige voorwerpskepping meer geheue verbruik.
Laai die PDF van Runnable vs Thread af
Jy kan die PDF-weergawe van hierdie artikel aflaai en dit vir vanlyn doeleindes gebruik soos per aanhalingsnota. Laai asseblief die PDF-weergawe hier af Verskil tussen hardloopbaar en draad