Skillnad mellan sömn och väntan

Sova vs vänta

Maskiner som datorer använder artificiellt språk för att skapa program, styra dem och låta dem kommunicera instruktioner och uttrycka algoritmer. Detta språk kallas programmeringsspråk.

Före tillkomsten av datorer hade programmeringsspråk redan använts i vävstolar och pianon. Eftersom datoranvändning blev vanligare var det nu flera programmeringsspråk som användes.

Det finns flera dataspråk inklusive högnivå språk som: BASIC, C, C ++, Fortran, Pascal och Java. Varje virtuell maskin och CPU har sitt eget datorspråk, var och en med sina egna svagheter och styrkor, och varje virtuell maskin driver en tråd när den startas. Denna tråd kör programkoden i programmet. Det kan göra ett program springa snabbare och hjälpa till i deras prestanda och användbarhet, särskilt när flera trådar används.

Virtuella maskiner, såsom den virtuella Java-maskinen, stödjer ett multi-thread-koncept med högre prioritetstrådar som först exekveras under lägre prioritetstrådar, vilket säkerställer en rättvis fördelning av tidsbehandling.

Det använder metoder för trådhantering som kan skapa, kontrollera och avsluta flödet av kontroller eller trådar i ett delat utrymme. Två av dessa trådhanteringsmetoder är väntetiden och sömnmetoderna.

Dessa två metoder är separata. Sömnmetoden reglerar tråden och fördröjer nästa åtgärd medan väntelägesmetoden inte kontrollerar trådenes genomförande för att låta andra tråden springa.

Ventimetoden definieras i Objeklassen och skickar den aktuella tråden till det ej körbara tillståndet. Den används tillsammans med meddela och meddela alla metoder för att låta exekveringskoden för ett objekt pausa tillfälligt och att återuppta det senare.

Det fungerar genom att anropa ett låsobjekt och låta den aktuella tråden synkronisera med den. Vänta släpper låset och lägger tråden i väntelistan och låter andra trådar synkronisera med det, vilket gör att den ursprungliga tråden vaknar. Programmeraren bestämmer den specifika tiden när körningen startas igen.

Sömnmetoden är å andra sidan definierad som en statisk metod. Det fördröjer utförandet av trådar och inte objekt samt upphänger tråden som körs. Den skickar aktuella trådar till ett icke-runnbart tillstånd under en viss tid. Det kan påverka beteendet hos applikationer som är multi-threaded eftersom det håller synkroniseringslås av den aktuella tråden. När tråden är i ett synkroniserat block kan ingen annan tråd komma in i blocket.

Sammanfattning:

1. "Sömn" är en trådhanteringsmetod som definieras som en statisk metod medan "vänta" är en trådhanteringsmetod som definieras i Objekts klassen.
2.Sleep är en metod som kör trådar medan vänta är en metod som kör objekt.
3.Sleep håller synkroniseringslås av den aktuella tråden och påverkar beteendet hos applikationerna medan väntetiden inte gör det.
4.Sleep styr kontrollen av tråden och tillåter inte andra tråden i ett synkroniserat block medan väntetiden inte kontrollerar tråden av tråden för att låta andra tråden springa.