Innehållsförteckning:

Hur kommunicerar trådar med varandra?
Hur kommunicerar trådar med varandra?

Video: Hur kommunicerar trådar med varandra?

Video: Hur kommunicerar trådar med varandra?
Video: Hur pratar vi med varandra 2024, November
Anonim

Det finns tre sätt att trådar till kommunicera med varandra . Den första är genom gemensamt delad data. Alla trådar i samma program dela samma minnesutrymme. Om ett objekt är tillgängligt för olika trådar sedan dessa trådar dela åtkomst till objektets datamedlem och därmed kommunicera varandra.

Folk frågar också, hur kommunicerar man mellan två trådar?

Förstå processen för kommunikation mellan trådar

  1. Trådar går in för att skaffa lås.
  2. Låset förvärvas av på tråden.
  3. Nu går tråden till vänteläge om du anropar metoden wait() på objektet.
  4. Om du anropar notify()- eller notifyAll()-metoden, flyttas tråden till det anmälda tillståndet (körbart tillstånd).

För det andra, vad är väntemetoden i tråden? Enkelt uttryckt, vänta () är en instans metod som används till tråd synkronisering. Det kan anropas på vilket objekt som helst, eftersom det är definierat direkt på java. lang. Objekt, men det kan bara anropas från ett synkroniserat block. Den släpper låset på föremålet så att en annan tråd kan hoppa in och skaffa ett lås.

Dessutom, hur uppnår du kommunikation mellan trådar?

Kommunikation mellan trådar i Java

  1. wait()-Den säger åt den anropande tråden att ge upp låset och gå i vila tills någon annan tråd kommer in på samma monitor och anropar notify().
  2. notify()-Det väcker en enda tråd som kallas wait() på samma objekt.
  3. notifyAll()-Det väcker alla trådar som kallas wait() på samma objekt.

Hur använder du vänta och meddela i Java-trådar?

När synchronized(this) används måste du undvika att synkronisera anrop av andra objekts metoder. vänta () säger till den som ringer tråd att ge upp monitorn och somna tills någon annan tråd går in på samma monitor och ringer meddela (). meddela () vaknar först tråd som ringde vänta () på samma objekt.

Rekommenderad: