PDA

Visualizza la versione completa : [tecniche Multithreading] cosa significa MARSHALLING?


darkblOOd
03-03-2003, 13:08
ho letto un pò di documentazione ed ho trovato queste due righe che mi sono sembrate poco esplicative:


Per marshalling si intende lo spostamento di una chiamata oltre i limiti dei thread, operazione molto dispendiosa in termini di risorse

qualche anima pia che mi sappia spiegare in parole povere, magari con qualche esempio semplice quanto banale, la differenza fra più operazioni eseguite delegando le stesse a + thread oppure delegando con il metodo BeginInvoke (per quanto riguarda VB.NET) ?

NB: vorrei parlarne in termini generici, senza legarmi a nessun linguaggio di programmazione in particolare. Mi interessa soltanto la teoria, il modo pratico per attuarla lo troverò in base al linguaggio che dovrò usare.


Grazie a quanti interverrano, sappiate che avrete contribuito alla crescita professionale di un pazzo :fagiano:

Sono presidiato da un medico psicologo, qualsiasi intervento sarà da considerarsi reale e non a presa per il culo.
La lettura del thread potrebbe causare allucinazioni, in caso contrario contattare un altro spacciatore di codice.

:ciauz:

vonkranz
03-03-2003, 13:52
...ora la sparo...:fagiano:


...probabilmente e' riferito al fatto di chiamare una funzione (o sub) o condividere dati tra due thread diversi...

..in VB.net, se non ricordo male, e' possibile destinare ciascuna funzione/sub ad un proprio threed....se all'interno di questa funzione hai una chiamata ad una funzione che essa stessa ha un proprio thread, il sistema viene spremuto per benino...



lo so... lo so... ho detto un sacco di c@22#te....:D

darkblOOd
03-03-2003, 14:00
Originariamente inviato da vonkranz
...ora la sparo...:fagiano:


...probabilmente e' riferito al fatto di chiamare una funzione (o sub) o condividere dati tra due thread diversi...

..in VB.net, se non ricordo male, e' possibile destinare ciascuna funzione/sub ad un proprio threed....se all'interno di questa funzione hai una chiamata ad una funzione che essa stessa ha un proprio thread, il sistema viene spremuto per benino...



lo so... lo so... ho detto un sacco di c@22#te....:D

uhm...ottimo spunto per approfondire le ricerche...

nell'esempio che ho valutato si parlava di un componente con 4 metodi, richiamati da 4 thread diversi...

mi era sembrato di capire che si riferisse allo "spazio" in cui venivano eseguiti i thread singolarmente (anche perchè non c'era nessuna operazione chiamata da un thread che lanciava un altro thread)

pensavo una specie di ottimizzazione delle operazioni per evitare un uso largo del processore :bhò:

vonkranz
03-03-2003, 14:08
Originariamente inviato da darkblOOd
uhm...ottimo spunto per approfondire le ricerche...

nell'esempio che ho valutato si parlava di un componente con 4 metodi, richiamati da 4 thread diversi...

mi era sembrato di capire che si riferisse allo "spazio" in cui venivano eseguiti i thread singolarmente (anche perchè non c'era nessuna operazione chiamata da un thread che lanciava un altro thread)

pensavo una specie di ottimizzazione delle operazioni per evitare un uso largo del processore :bhò:
...oddio!!!...:eek:...allora non ho detto troppo c@22#te...:metallica

...cmq, la gestione delle funzioni/sub su singolo thread, risulta estremamente dispendiosa per il sistema...anche se non ci sono chiamate "inter-thread"...in pratica obblighi il sistema a creare un "sotto-thread all'interno" del thread assegnato al programma....

...ho letto che e' meglio usarlo con parsimonia questo sistema...;)..ed e' anche abbastanza incasinato fare il debug...;)...

darkblOOd
03-03-2003, 16:21
Originariamente inviato da vonkranz
...oddio!!!...:eek:...allora non ho detto troppo c@22#te...:metallica

...cmq, la gestione delle funzioni/sub su singolo thread, risulta estremamente dispendiosa per il sistema...anche se non ci sono chiamate "inter-thread"...in pratica obblighi il sistema a creare un "sotto-thread all'interno" del thread assegnato al programma....

...ho letto che e' meglio usarlo con parsimonia questo sistema...;)..ed e' anche abbastanza incasinato fare il debug...;)...

il debug è da tagliarsi le vene :fagiano:

cmq, era solo una curiosità... sai che noi programmatori siamo fuori di testa...volevo soltanto capire la differenza che c'è fra una chiamata ad un thread lanciato normalmente ed una chiamata effettuata tramite un delegato per effettuare il marshalling :master:


vedremo, se troo una spiegazione chiara la posto, pèer cultura generale ;)


ps: grazie vonkranz

Dwenegar
03-03-2003, 16:29
sai che noi programmatori siamo fuori di testa...volevo soltanto

suona male..meglio dire che siamo curiosi :)

darkblOOd
03-03-2003, 16:36
Originariamente inviato da Dwenegar
suona male..meglio dire che siamo curiosi :)
:p

si, intendevo dire che siamo curiosi all'inverosimile...almeno io personalmente ;)

blinkago
03-03-2003, 17:05
Se ho capito bene cos'è l'ho utilizzato per un port scanner!
Vari thread fanno la scansione, e chiamano tutti un'unico metodo(tramite il pattern observer) che aggiorna i risultati!
E'così?

In pratica observer è un estensione del marshalling?
altrimenti non ho capito!:gren:


PS: Esempi pratici?

Dwenegar
03-03-2003, 17:49
Il termine marshalling si usa in riferimento al processo di impacchettare dei dati in modo che possano essere trasferiti dall'applicazione A all'applicazione B.

darkblOOd
03-03-2003, 17:51
Originariamente inviato da Dwenegar
Il termine marshalling si usa in riferimento al processo di impacchettare dei dati in modo che possano essere trasferiti dall'applicazione A all'applicazione B.
la tua firma vale anche per questa definizione? :fagiano:

a parte gli scherzi, se non ti viene troppo un casino potresti postare un esempio banalissimo, tanto per capire il concetto e la differenza fra chiamare un metodo in un thread in maniera standard e invece eseguire la stessa operazione con la tecnica del marshalling? :)

vanno bene anche link a risorse esterne, grazie....mi serve tanto per capire la differenza e dedurre le possibili implementazioni

Loading