Newsgroup: it.comp.lang.delphi
Titolo: PPL

Ciao a tutti,
   volevo inizare a capire come utilizzare la programmazione parallela.
Avete da suggerire qualche testo per iniziare a muovere i primi passi in 
questo argomento ?
 
Grazie
 
Ciao
 
Daniele

 
La programmazione parallela o concorrente è una potenzialità offerta dal sistema operativo di turno e implementata in modo abbastanza specifico.
Rientra in un argomento sconosciuto ai più: LA TEORIA DEI SISTEMI OPERATIVI.
Al momento non so suggerirti un buon testo ovviamente in inglese che parli di questo argomento.
Io l'ho studiato per la maturità troppi anni fa (1986) su un testo che aveva solo 2 capitoli: basi di dati e teoria dei sistemi operativi.
Questo studio è per me fondamentale in quanto ho un idea abbastanza precisa di cosa succede dietro le quinte.
Ad esempio, non tutti sanno che molto di quello che delphi fa lo fa delegando il compito al sistema operativo....
 
 
 
In Windows sta cosa si basa molto sui thread dai quali molti sono spaventati; in realtà se rispetti 5 o 6 regole la maggior parte dei problemi semplicemente non li avrai.
Sui sistemi unix/linux credo che molto si basi sul concetto di fork...per maggiori dettagli sai già dove cercare
 
.Net ha delle classi per gestire questa cosa in modo più astratto e semplificato.
In delphi credo abbiano integrato qualcosa ma non ne so nulla...nel caso spero che ste cose FUNZIONINO.....
 
 
Su android le cose sono un pochino diverse.
Windows di base è sincrono e usi i thread a tua discrezione e a tua responsabilità.
Android di base è quasi completamente ASINCRONO, quindi quasi tutto quello che fai si basa su quelli che chiamo thread ma in realtà sono ben altro.
Ad esempio, se in una app android vuoi mostrare una mappa di google  maps, la invochi ma sai già che alla riga successiva la mappa non sarà ancora pronta.
Quindi dovrai applicare un pattern observer, registrando un qualcosa che riceverà la notifica quando la mappa sarà disponibile e la gestirà.
 
 
 
Tornando a Windows, la lezione zero è capire se effettivamente ti serve un thread: Tutto il resto viene dopo.
Quindi, la domanda per iniziare è "a cosa ti servirebbe la programmazione parallela o concorrente?".
 
A.
 
 

Ciao Alberto,
   scusa il ritardo !!
In Brevissimo ....
 
Quello che devo ottenere e' un miglioramento delle gestione di una 
procedura (form) con cui ascolto della musica.
Questa procedura (dove si selezionano dei file musicali che vengono 
riprodotti) si apre dalla main form con MusicFrom.Show; Fin quando si 
rimane nella main form la posso richiamare in primo piano e, per 
esempio, cambiare brano, gestire il volume (non di sistema), aggiungere 
o rimuovere files eccc...
 
Se dalla main form entro in altre procedure, magari che richiedono 
diverso tempo, perdo il controllo della musicform prche' la form appena 
della nuova procedura e' stata "aperta" con ShowModal.
 
Cosi', pensavo, che per la gestione (limitata) al volume la potevo 
separare in un'altro thread. Da qui poi altri ed altri problemi che si 
risolveranno (spero) quando si verificheranno ....
 
Di certo avrai suggerimenti in merito che potrebbero risolvere questo 
mio inconveniente !!
 
Grazie
 
Ciao e buon fine settimana !!
 
Daniele
 

Trattandosi di windows, per semplicità parlo di thread.
Nessuna libreria grafica credo supporti il multithreading.
La VCL di sicuro no.
 
A.

Ciao Alberto,

Esatto, la grafica non e' supportata.
Nei vari thread che si fanno (non nho la minima idea di come farne piu' 
d'uno ... sono ancora in fase molto iniziale ..) la gestione e' dei soli 
dati; Poi la grafica (negli pochi esempi che ho sbirciato) viene 
aggiornata con una generica procedura "UpdateGraphics" che e' messa non 
so dove.
Ecco, questo per dirti a che (sub)livello sono !!!
 
Grazie
 
Ciao
 
Daniele