Mitä ovat estävät pistorasiat?
Mitä ovat estävät pistorasiat?

Video: Mitä ovat estävät pistorasiat?

Video: Mitä ovat estävät pistorasiat?
Video: Магадан. Охотское море. Ямской архипелаг. Магаданский заповедник. 2024, Marraskuu
Anonim

ei - estävät pistorasiat . Ratkaisu tähän ongelmaan on ns. ei - estävät pistorasiat Oletusarvoisesti TCP pistorasiat ovat esto Kun esimerkiksi kutsut recv()-komentoa lukeaksesi virrasta, ohjausta ei palauteta ohjelmallesi ennen kuin etäsivustolta on luettu vähintään yksi tavu dataa.

Vastaavasti mikä on estävä ja estävä pistorasia?

Sisään esto -tila, vastaanota, lähetä, yhdistä (vain TCP) ja hyväksy (vain TCP) pistorasia API-kutsut lohko määräämättömäksi ajaksi, kunnes pyydetty toimenpide on suoritettu. Sisään ei - esto -tilassa, nämä toiminnot palaavat välittömästi. valitse tahto lohko kunnes pistorasia on valmis.

Voidaan myös kysyä, estävätkö pistorasiat oletuksena? Tekijä: oletuksena , TCP pistorasiat sijoitetaan a esto -tilassa. Tämä tarkoittaa, että ohjausta ei palauteta ohjelmallesi ennen kuin jokin tietty toiminto on suoritettu.

Mitä tulee tähän, kuinka teet estävän pistorasian?

Merkitse a pistorasia kuten ei - esto , käytämme fcntl-järjestelmäkutsua. Tässä on esimerkki: int flags = guard(fcntl(socket_fd, F_GETFL), "ei voinut saada tiedostolippuja"); guard(fcntl(socket_fd, F_SETFL, liput | O_NONBLOCK), "ei voinut aseta tiedostoliput");

Mikä on pistorasian esto?

A pistorasia voi olla " estotila " tai "estoton - tilassa ." Toiminnot pistorasiat sisään esto (tai synkroninen) - tilassa älä palaa ennen kuin he voivat suorittaa toimintonsa. Tätä kutsutaan esto koska pistorasia jonka funktio kutsuttiin, ei voi tehdä mitään - on estetty - ennen kuin puhelu palaa.

Suositeltava: