- Daudzpavedienu veidošana
- Daudzuzdevumu veikšana
- Uz procesu balstīta daudzuzdevumu veikšana
- Uz pavedieniem balstīta daudzuzdevumu veikšana
- Kas ir pavediens
Vairāku pavedienu ievadīšana Java ir process, kurā vienlaikus tiek izpildīti vairāki pavedieni.
Vītne ir viegls apakšprocess, mazākā apstrādes vienība. Daudzapstrāde un daudzpavedienu izveide tiek izmantota, lai panāktu vairākuzdevumu veikšanu.
attēlu izlīdzināšana css
Tomēr mēs izmantojam vairākpavedienu, nevis vairāku apstrādi, jo pavedieni izmanto koplietojamo atmiņas apgabalu. Tie nepiešķir atsevišķu atmiņas apgabalu, tādējādi ietaupa atmiņu, un konteksta pārslēgšana starp pavedieniem aizņem mazāk laika nekā process.
Java Multithreading galvenokārt tiek izmantota spēlēs, animācijās utt.
Java daudzpavedienu priekšrocības
1) tā nebloķē lietotāju jo pavedieni ir neatkarīgi un jūs varat veikt vairākas darbības vienlaikus.
2) Tu var veikt daudzas darbības kopā, tāpēc tas ietaupa laiku .
3) Diegi ir neatkarīgs , tāpēc tas neietekmē citus pavedienus, ja izņēmums notiek vienā pavedienā.
Daudzuzdevumu veikšana
Daudzuzdevumu veikšana ir process, kurā vienlaikus tiek izpildīti vairāki uzdevumi. Mēs izmantojam vairākuzdevumu veikšanu, lai izmantotu centrālo procesoru. Daudzuzdevumu veikšanu var veikt divos veidos:
- Uz procesu balstīta daudzuzdevumu veikšana (daudzapstrāde)
- Uz pavedieniem balstīta daudzuzdevumu veikšana (vairāku pavedienu veikšana)
1) Uz procesu balstīta daudzuzdevumu veikšana (daudzapstrāde)
- Katram procesam atmiņā ir adrese. Citiem vārdiem sakot, katrs process piešķir atsevišķu atmiņas apgabalu.
- Process ir smags.
- Saziņas izmaksas starp procesu ir augstas.
- Pārslēgšanās no viena procesa uz citu prasa zināmu laiku saglabāšanai un ielādei reģistros , atmiņas kartes, sarakstu atjaunināšana utt.
2) Uz pavedieniem balstīta daudzuzdevumu veikšana (vairāku pavedienu apstrāde)
- Pavedieniem ir viena adrešu telpa.
- Vītne ir viegla.
- Saziņas izmaksas starp pavedieniem ir zemas.
Piezīme. Katram pavedienam ir nepieciešams vismaz viens process.
Kas ir pavediens java
Vītne ir viegls apakšprocess, mazākā apstrādes vienība. Tas ir atsevišķs izpildes ceļš.
Pavedieni ir neatkarīgi. Ja vienā pavedienā ir izņēmums, tas neietekmē citus pavedienus. Tas izmanto koplietojamo atmiņas apgabalu.
Kā parādīts iepriekšējā attēlā, procesa iekšpusē tiek izpildīts pavediens. Starp pavedieniem notiek konteksta maiņa. OS var būt vairāki procesi, un vienam procesam var būt vairāki pavedieni.
Piezīme. Vienlaikus tiek izpildīts tikai viens pavediens.
Java pavedienu klase
Java nodrošina Vītnes klase lai panāktu pavedienu programmēšanu. Pavedienu klase nodrošina konstruktori un metodes, kā izveidot un veikt darbības ar pavedienu. Vītnes klase pagarinās Objektu klase un ievieš Runnable interfeisu.
Java pavedienu metodes
S.N. | Modifikators un tips | Metode | Apraksts |
---|---|---|---|
1) | nederīgs | sākt() | To izmanto, lai sāktu pavediena izpildi. |
2) | nederīgs | palaist () | To izmanto, lai veiktu darbību pavedienam. |
3) | statisks tukšums | Gulēt() | Tas guļ pavedienu uz norādīto laiku. |
4) | statisks pavediens | pašreizējais pavediens() | Tas atgriež atsauci uz pašlaik izpildāmo pavediena objektu. |
5) | nederīgs | pievienoties () | Tas gaida, kad pavediens nomirs. |
6) | starpt | getPriority() | Tas atgriež pavediena prioritāti. |
7) | nederīgs | setPriority() | Tas maina pavediena prioritāti. |
8) | Stīga | getName() | Tas atgriež pavediena nosaukumu. |
9) | nederīgs | setName() | Tas maina pavediena nosaukumu. |
10) | garš | getId() | Tas atgriež pavediena ID. |
vienpadsmit) | Būla | ir dzīvs() | Tas pārbauda, vai pavediens ir dzīvs. |
12) | statisks tukšums | raža () | Tas izraisa pašlaik izpildāmā pavediena objekta pauzi un ļauj īslaicīgi izpildīt citus pavedienus. |
13) | nederīgs | apturēt () | To izmanto, lai apturētu pavedienu. |
14) | nederīgs | turpināt() | To izmanto, lai atsāktu apturēto pavedienu. |
piecpadsmit) | nederīgs | stop () | To izmanto, lai apturētu pavedienu. |
16) | nederīgs | iznīcināt() | To izmanto, lai iznīcinātu pavedienu grupu un visas tās apakšgrupas. |
17) | Būla | isDaemon() | Tas pārbauda, vai pavediens ir dēmona pavediens. |
18) | nederīgs | setDaemon() | Tas atzīmē pavedienu kā dēmonu vai lietotāja pavedienu. |
19) | nederīgs | pārtraukt () | Tas pārtrauc pavedienu. |
divdesmit) | Būla | ir pārtraukts () | Tas pārbauda, vai pavediens ir pārtraukts. |
divdesmitviens) | statiskā Būla vērtība | pārtraukts () | Tas pārbauda, vai pašreizējais pavediens ir pārtraukts. |
22) | statisks starpt | activeCount() | Tas atgriež aktīvo pavedienu skaitu pašreizējā pavediena pavedienu grupā. |
23) | nederīgs | pārbaudīt piekļuvi () | Tas nosaka, vai pašlaik palaistajam pavedienam ir atļauja modificēt pavedienu. |
24) | statiskā Būla vērtība | holdLock() | Tas atgriež patiesu tad un tikai tad, ja pašreizējais pavediens satur monitora bloķēšanu norādītajā objektā. |
25) | statisks tukšums | dumpStack () | To izmanto, lai standarta kļūdu straumē drukātu pašreizējā pavediena steku. |
26) | StackTraceElement[] | getStackTrace() | Tas atgriež steka izsekošanas elementu masīvu, kas attēlo pavediena steka izgāztuvi. |
27) | statisks starpt | uzskaitīt () | To izmanto, lai kopētu katra aktīvā pavediena pavedienu grupu un tās apakšgrupu norādītajā masīvā. |
28) | Pavediens.Valsts | getState() | To izmanto, lai atgrieztu pavediena stāvokli. |
29) | ThreadGroup | getThreadGroup() | To izmanto, lai atgrieztu pavedienu grupu, kurai pieder šis pavediens |
30) | Stīga | toString() | To izmanto, lai atgrieztu šī pavediena virknes attēlojumu, tostarp pavediena nosaukumu, prioritāti un pavedienu grupu. |
31) | nederīgs | paziņot() | To izmanto, lai sniegtu paziņojumu tikai par vienu pavedienu, kas gaida konkrētu objektu. |
32) | nederīgs | paziņot visiem() | To izmanto, lai sniegtu paziņojumu visiem konkrēta objekta gaidošajiem pavedieniem. |
33) | nederīgs | setContextClassLoader() | Tas iestata konteksta ClassLoader pavedienam. |
3. 4) | ClassLoader | getContextClassLoader() | Tas atgriež pavedienam konteksta ClassLoader. |
35) | statisks pavediens.UncaughtExceptionHandler | getDefaultUncaughtExceptionHandler() | Tas atgriež noklusējuma apdarinātāju, kas tiek izsaukts, kad pavediens pēkšņi beidzas nenoķerta izņēmuma dēļ. |
36) | statisks tukšums | setDefaultUncaughtExceptionHandler() | Tas iestata noklusējuma apdarinātāju, kas tiek izsaukts, kad pavediens pēkšņi beidzas nenoķerta izņēmuma dēļ. |
- Kā veikt divus uzdevumus ar diviem pavedieniem?
- Kā veikt anonīmās klases multithreading?
- Kas ir pavedienu plānotājs un kāda ir atšķirība starp iepriekšēju plānošanu un laika sadalīšanu?
- Kas notiek, ja pavedienu sākam divreiz?
- Kas notiek, ja mēs izsauksim run() metodi, nevis start() metodi?
- Kāds ir pievienošanās metodes mērķis?
- Kāpēc JVM pārtrauc dēmona pavedienu, ja vairs nav neviena lietotāja pavediena?
- Kas ir izslēgšanas āķis?
- Kas ir atkritumu savākšana?
- Kāds ir finalize() metodes mērķis?
- Ko nozīmē gc() metode?
- Kas ir sinhronizācija un kāpēc izmantot sinhronizāciju?
- Kāda ir atšķirība starp sinhronizēto metodi un sinhronizēto bloku?
- Kādi ir divi veidi, kā veikt statisko sinhronizāciju?
- Kas ir strupceļš un kad tas var notikt?
- Kas ir starppavedienu komunikācija vai sadarbība?
- Daudzpavedienu veidošana
- Vītnes dzīves cikls
- Divi veidi, kā izveidot pavedienu
- Kā veikt vairākus uzdevumus, izmantojot vairākus pavedienus
- Pavedienu plānotājs
- Guļot pavedienu
- Vai mēs varam sākt pavedienu divreiz?
- Kas notiek, ja mēs izsauksim run() metodi, nevis start() metodi?
- Pievienošanās pavedienam
- Nosaucot pavedienu
- Vītnes prioritāte
- Dēmona pavediens
- ShutdownHook
- Atkritumu kolekcija
- Sinhronizācija ar sinhronizēto metodi
- Sinhronizēts bloks
- Statiskā sinhronizācija
- Strupceļš
- Saziņa starp pavedieniem