Sisukord:

Kuidas niidid omavahel suhtlevad?
Kuidas niidid omavahel suhtlevad?

Video: Kuidas niidid omavahel suhtlevad?

Video: Kuidas niidid omavahel suhtlevad?
Video: #039 Snezana Stoljarova: Kuidas arendada suhtlemisoskusi? 2024, Aprill
Anonim

Selleks on kolm võimalust niidid juurde omavahel suhelda . Esimene on ühiselt jagatud andmete kaudu. Kõik niidid samas programmis jagavad sama mäluruumi. Kui objekt on juurdepääsetav erinevatele niidid siis need niidid jagada juurdepääsu selle objekti andmeliikmele ja seega omavahel suhelda.

Inimesed küsivad ka, kuidas sa suhtled kahe lõime vahel?

Lõimedevahelise suhtluse protsessi mõistmine

  1. Lõimed sisenevad luku saamiseks.
  2. Lukk omandatakse keermega.
  3. Nüüd läheb lõim ooteolekusse, kui kutsute objektil meetodit wait().
  4. Kui kutsute meetodit notify() või notifyAll(), liigub lõim teavitatud olekusse (käivitatav olek).

Teiseks, mis on lõimes ootemeetod? Lihtsamalt öeldes, oota () on näide meetod selleks kasutatakse niit sünkroonimine. Seda saab kutsuda mis tahes objektil, kuna see on määratletud otse Javas. lang. Objekt, kuid seda saab kutsuda ainult sünkroniseeritud plokist. See vabastab objekti luku, nii et teine niit saab sisse hüpata ja luku omandada.

Lisaks, kuidas saavutate lõimedevahelise suhtluse?

Lõimedevaheline suhtlus Javas

  1. oota()-See käsib kutsuval lõimel lukust loobuda ja magama minna, kuni mõni teine lõim siseneb samasse monitori ja kutsub välja notify().
  2. notify() – see äratab ühe lõime, mis kutsus samal objektil ootama().
  3. notifyAll() – äratab kõik lõimed, mis kutsusid samal objektil ootama().

Kuidas kasutada Java lõimedes ootamist ja teavitamist?

Kui kasutatakse sünkroonimist (seda), peate vältima teiste objektide meetodite kutsumiste sünkroonimist. oota () ütleb kutsuja niit monitorist loobuda ja magama minna kuni mõne teiseni niit siseneb samale monitorile ja helistab teatama (). teatama () ärkab esimesena niit et helistas oota () samal objektil.

Soovitan: