Selectați (forum)

de exemplu, există două procese - P1 și P2. Legat prin priza de domeniu unix. n2 n1 în scrierile unora dintre datele și așteaptă rezultatul performanței P1 care n2 trebuie să arunce în priză. P1 este în așteptare pentru acest rezultat folosind selectați cu un timp de expirare.

Ca rezultat, un n1 timeout efectuează o altă muncă (și în acest moment lasa n2 totuși să înregistreze rezultatul P1 în soclu) și necesitatea de a spune încă o dată trimite deja au alte fluxul de date n2 și a obține n2 au un rezultat de prelucrare P2 date noi.

Ce se va întâmpla atunci când cauza n1 selectați cu un timp de expirare pentru a doua oară:

- 1) selectați reveni imediat de control și recv citește „fault“ datele de la priza, adică P1? - 2), care citește n2 de la priza - pe care le-a scris P1 sau date noi de la P1 (să zicem de citire este aceeași dimensiune)?

Și o altă întrebare - cum să-l depășească? Acesta poate avea un mecanism bine stabilit de afacere sau protocol de schimb pur și simplu rafinament între P1 și P2?

Întrebarea 2, ca urmare a unei întrebări de prost poate fi redusă - în cazul în care n2 procesul înregistrat în priza 16 bytes, dar nici unul care priza nu citește, iar procesul n1 este înregistrat în priză mai multe 16 bytes, iar apoi în cazul în care n2 proces va lua o bucată de 16 bytes - ce date primi?

Ia Nginx vs apache ca un proxy.

Apel selectați (epoll_wait / kevent / indiferent) - switch-uri de context. Ajunge mânerul (e). Apoi suna de citire - comută context. Apelați la scriere - comută context. Ie Avem un comutator de context pentru fiecare citire / scriere + pentru a selecta.

Avem o grămadă de fire, fiecare dintre care este adormit în așteptare pentru scriere / citire la / de la priza. Vino date - switch-uri de context. Care sunt comutatorul suplimentar între apeluri, blocarea funcții sunt extrem de improbabil.

Adică chiar un pic mai bine, alte lucruri fiind egale, pentru _kolichestvu_ de comutare a firului, deoarece Fără apel suplimentare selectați.

Mii de fire de dormit în așteptarea finalizării operațiunilor de I / O pentru OSes puțin otlichiyutsya de la mii de prize în multiplexorul face același lucru. Nu?

S-a obținut de la Apache mai scumpe decât recepția unei noi conexiuni, iar orice altceva este un mit?

Există un proces care funcționează cu o interfață grafică. Poate că depinde de modul în care procesul de asamblare Android-și X11 / Wayland grafichkskogo sau orice alt server. În același timp, se poate lucra cu rețeaua și dispozitivele de caracter direct.
Este posibil într-un fel de a efectua în condiții de siguranță, selectați / sondaj pe toți descriptorii, care pot fi produse de intrare?

Bună timp. Este imposibil de a rezolva problemmu banal. Ai nevoie pentru a face o cerere care ar produce o valoare medie Numărul de elemente care aparțin fiecărui subgrup sunt de asemenea împărțite în grupuri diferite. Ie Există trei mese în primul rând pentru studenții noștri și numărul de grupuri din al doilea număr de grup și codul de facultatea de a ktoroy din care fac parte, în al treilea numele facultății și să respecte codul facultății. Pentru a obține numărul mediu de grupuri din fiecare facultate.


Am încercat să fac o cerere (este imposibil de a face sisntaksis dreapta):


Am încercat să refacă:

Din moment ce această logică este ideea îmi dă rezultatul dorit, nu se raspandesc încercarea anterioară.

Bună ziua. Terniruyus - scris de server asincron pentru a selecta.

Sunt agățat în browser-ul sau telnet selectați, etc conecta la server și apoi conectați noul meu conexiune în read_fd_set și write_fd_set

Ie M-am alăturat telnet, dar nimic nu a fost înregistrată, acceptul de a lucra, nu e el. Aici nu am înregistrat și sarcina selectați, iar unele au o priză în write_fd_set mea. Aceasta înseamnă, de asemenea, că mă duc acolo este ceva de scris? Sau ce înseamnă? Stie cineva ce se întâmplă și ce ar trebui să fac?

56,6% - este sarcina procesorului.

În timp ce cozile de rutare în RabbitMQ nu atât de mult.

Memoria nu este atât de mult:

Un erlang'ovsky rpmd-daemon atârnă pe un astfel de sistem vyhovah:

Procesul 1017 atașat - întrerupe pentru a iesi select (7, [05 martie], NULL, NULL) = 0 (Timeout) gettimeofday (, NULL) = 0 select (7, [05 martie], NULL, NULL) = 0 ( timeout) gettimeofday (, NULL) = 0 select (7, [05 martie], NULL, NULL) = 0 (timeout)

Dar rareori și resurse nu mănâncă aproape.

Dar beam.smp la top'a sus.

Care ar putea fi problema?

articole similare