[so] [Tema2][Windows] Parametru CreatePipe

Costin Lupu costin.lup at gmail.com
Mon Apr 3 11:24:03 EEST 2017


On Mon, 2017-04-03 at 10:48 +0300, Theodor Stoican wrote:
> Pe 3 aprilie 2017, 10:01, Costin Lupu <costin.lup at gmail.com> a scris:
>         On Mon, 2017-04-03 at 09:42 +0300, Theodor Stoican via so
>         wrote:
>         > Salut,
>         >
>         >
>         >
>         > > Aici e o problemă. Subcomenzile a, b și c *trebuie* să
>         ruleze în
>         > > paralel. De altfel ne putem gândi la operatorul '|' ca la
>         un operator de
>         > > paralelizare, cu diferența că subcomenzile comunică între
>         ele
>         >
>         >
>         > Se vrea acest comportament doar pentru comenzile externe? Nu
>         vad cum
>         > ai putea respecta acest comportament pentru cd, fara sa
>         deschizi
>         > thread-uri.
>         
>         Fix ca în cazul operatorului de paralelizare, și pentru
>         operatorul pipe
>         procesele pornesc în paralel și se pot termina în orice
>         ordine. Nu ai
>         nevoie de thread-uri. Nu înțeleg de unde vine nelămurirea ta,
>         mai am
>         nevoie de niște clarificări în sensul ăsta.
>         
>         Ia spre exemplu comanda: 'cd | echo foo'. Subcomanda 'echo
>         foo' nici
>         măcar nu citește de la stdin.
>  
> Nu inteleg cum poti lansa cele 2 procese in paralel fara sa pornesti
> threaduri. 

Păi și thread-urile alea nu tot secvențial le pornești?

> Singura varianta pe care o vad e sa transformi functia intr-un
> executabil si sa i-l dai ca parametru lui CreateProcess. Altfel
> parcurgerea arborelui e inerent secventiala. Imi scapa ceva?

Cred că tu te gândești să pornești procesele fix în același timp. Ori
asta ar fi posibil doar pe sistemele multiprocesor și doar dacă
kernel-ul ți-ar furniza un astfel de syscall (de care eu n-am auzit).
Ori mini-shell-ul (ca și bash-ul) pornește comenzi în paralel indiferent
de numărul de procesoare de pe sistem.

Costin





More information about the so mailing list