Matulog at Maghintay

Anonim

Sleep vs Wait

Ang mga makina tulad ng mga computer ay gumagamit ng artipisyal na wika upang lumikha ng mga programa, kontrolin ang mga ito, at pahintulutan silang makipag-usap sa mga tagubilin at magpahayag ng mga algorithm. Ang wikang ito ay tinatawag na programming language.

Bago ang pagdating ng mga computer, ang mga programming language ay ginagamit na sa mga loom at mga piano. Tulad ng paggamit ng computer na mas karaniwan, mayroon nang ilang mga programming language na ginagamit.

Mayroong maraming mga wika sa computer kabilang ang mga mataas na antas ng wika tulad ng: BATAYANG, C, C + +, Fortran, Pascal, at Java. Ang bawat virtual machine at CPU ay may sariling wika sa computer, bawat isa ay may sarili nitong mga kahinaan at lakas, at bawat virtual machine ay nagpapatakbo ng isang thread kapag nagsimula. Pinapatupad ng thread na ito ang application code sa programa. Maaari itong gumawa ng isang programa ng mas mabilis na tumakbo at makatulong sa kanilang pagganap at pagiging kapaki-pakinabang lalo na kapag maraming mga thread ay ginagamit.

Ang mga virtual machine, tulad ng Java virtual machine, ay sumusuporta sa isang multi-threading na konsepto na may mas mataas na priority thread na naisakatuparan muna sa mas mababang thread ng priority na tinitiyak ang makatarungang dibisyon ng pagpoproseso ng oras.

Gumagamit ito ng mga pamamaraan ng pamamahala ng thread na maaaring lumikha, kontrolin, at tapusin ang daloy ng mga kontrol o mga thread sa isang nakabahaging espasyo. Ang dalawa sa mga pamamaraan ng pamamahala ng thread ay ang paghihintay at ang mga pamamaraan ng pagtulog.

Ang dalawang paraan ay hiwalay. Kinokontrol ng paraan ng pagtulog ang pagpapatupad ng thread at pagkaantala sa susunod na pagkilos habang ang pamamaraan ng paghihintay ay hindi makokontrol sa pagpapatupad ng thread upang hayaan ang iba pang mga thread na tumakbo.

Ang paraan ng paghihintay ay tinukoy sa klase ng Bagay at nagpapadala ng kasalukuyang thread sa hindi runnable na estado. Ito ay ginagamit kasama ng abisuhan at ipaalam ang lahat ng mga pamamaraan upang ipaalam ang pagpapatupad code ng isang bagay pansamantalang i-pause at upang ipagpatuloy ito sa ibang pagkakataon.

Gumagana ito sa pamamagitan ng pagtawag sa isang lock object at pagpapaalam sa kasalukuyang thread synchronize dito. Maghintay ay ilabas ang lock at ilagay ang thread sa listahan ng paghihintay at hayaan ang iba pang mga thread na i-synchronize sa mga ito na nagiging sanhi ng orihinal na thread upang gisingin. Tinutukoy ng programista ang tiyak na oras kung kailan muling nagsisimula ang pagpapatupad.

Ang paraan ng pagtulog, sa kabilang banda, ay tinukoy bilang isang static na pamamaraan. Naantala nito ang pagpapatupad ng mga thread at hindi bagay pati na rin ang suspensyon ang thread na kung saan ay pinaandar. Nagpapadala ito ng kasalukuyang mga thread sa hindi runnable na estado para sa ilang tagal ng panahon. Ito ay maaaring makaapekto sa pag-uugali ng mga application na multi-threaded dahil pinapanatili nito ang mga lock ng pag-synchronize ng kasalukuyang thread. Sa sandaling ang thread ay nasa isang naka-synchronize na bloke, walang ibang thread ang makakapasok sa bloke.

Buod:

1. "Sleep" ay isang paraan ng pamamahala ng thread na tinukoy bilang isang static na paraan habang ang "maghintay" ay isang paraan ng pamamahala ng thread na tinukoy sa klase ng Object. 2.Sleep ay isang paraan na executes thread habang maghintay ay isang paraan na executes bagay. 3.Sleep mapigil ang mga pag-synchronize ng mga kandado ng kasalukuyang thread at nakakaimpluwensya sa pag-uugali ng mga application habang ang paghihintay ay hindi. 4.Sleep kumokontrol sa pagpapatupad ng thread at hindi pinapayagan ang iba pang mga thread sa isang naka-synchronize na block habang maghintay ay hindi kontrolin ang pagpapatupad ng thread upang hayaan ang iba pang mga thread na tumakbo.