| View previous topic :: View next topic |
| Author |
Message |
Bixio Guest
|
Posted: Thu Feb 19, 2004 9:59 pm Post subject: "Multithreading dinamico" |
|
|
Vorrei sapere da qualche esperto se c'è un modo di gestire dinamicamente il
numero di threads di un'applicazione.
Per capirci:
- faccio partire l'applicazione con un numero standard di threads
- durante l'esecuzione modifico il numero dei threads
- a seconda del nuovo valore il numero di threads in esecuzione sale (o
scende) dinamicamente
Tutto chiaro??
Come posso fare?
grazie
|
|
| Back to top |
|
 |
Andrea B. Guest
|
Posted: Fri Feb 20, 2004 8:26 am Post subject: Re: "Multithreading dinamico" |
|
|
Semplicemente istanziando nuovi thread quanto ti pare o terminandoli (meglio
se evitando metodi deprecati) al momento opportuno
Thread t = new Thread(Runnable r);
t.start()
o la tua classe estende Thread
Ciao
"Bixio" <bixio.ng (AT) email (DOT) it> ha scritto nel messaggio
news:4laZb.259926$VW.10396250 (AT) news3 (DOT) tin.it...
| Quote: | Vorrei sapere da qualche esperto se c'è un modo di gestire dinamicamente
il
numero di threads di un'applicazione.
Per capirci:
- faccio partire l'applicazione con un numero standard di threads
- durante l'esecuzione modifico il numero dei threads
- a seconda del nuovo valore il numero di threads in esecuzione sale (o
scende) dinamicamente
Tutto chiaro??
Come posso fare?
grazie
|
|
|
| Back to top |
|
 |
Bixio Guest
|
Posted: Fri Feb 20, 2004 9:15 am Post subject: Re: "Multithreading dinamico" |
|
|
Ma ogni thread che lancio deve avere un nome diverso, vero??
quindi t[1] , t[2] ecc ecc...
"Andrea B." <ab (AT) xx (DOT) it> ha scritto nel messaggio
news:c14g0o$ntq$1 (AT) fata (DOT) cs.interbusiness.it...
| Quote: | Semplicemente istanziando nuovi thread quanto ti pare o terminandoli
(meglio
se evitando metodi deprecati) al momento opportuno
Thread t = new Thread(Runnable r);
t.start()
o la tua classe estende Thread
Ciao
"Bixio" <bixio.ng (AT) email (DOT) it> ha scritto nel messaggio
news:4laZb.259926$VW.10396250 (AT) news3 (DOT) tin.it...
Vorrei sapere da qualche esperto se c'è un modo di gestire dinamicamente
il
numero di threads di un'applicazione.
Per capirci:
- faccio partire l'applicazione con un numero standard di threads
- durante l'esecuzione modifico il numero dei threads
- a seconda del nuovo valore il numero di threads in esecuzione sale (o
scende) dinamicamente
Tutto chiaro??
Come posso fare?
grazie
|
|
|
| Back to top |
|
 |
Vincent Vega Guest
|
Posted: Fri Feb 20, 2004 11:46 am Post subject: Re: "Multithreading dinamico" |
|
|
"Bixio" <bixio.ng (AT) email (DOT) it> wrote in
news:4fkZb.347401$_P.11907007 (AT) news4 (DOT) tin.it:
| Quote: | Ma ogni thread che lancio deve avere un nome diverso, vero??
quindi t[1] , t[2] ecc ecc...
|
Ogni thread deve essere un istanza diversa, in linea teorica puoi usare la
stessa variabile a patto che prima di ogni start tu crei una nuova istanza
con new.
Poi sta al thread principale decidere se memorizzare i singoli thread in
diverse variabili, gestire un pool, etc... naturalmente se ri-usa la stessa
variabile per avviare più thread perde via via il controllo degli stessi,
dipende da quello che vuoi fare.
|
|
| Back to top |
|
 |
Cristiano Sadun Guest
|
Posted: Thu Feb 26, 2004 2:00 pm Post subject: Re: "Multithreading dinamico" |
|
|
"Bixio" <bixio.ng (AT) email (DOT) it> wrote in
news:4laZb.259926$VW.10396250 (AT) news3 (DOT) tin.it:
| Quote: | Vorrei sapere da qualche esperto se c'è un modo di gestire
dinamicamente il numero di threads di un'applicazione.
Per capirci:
- faccio partire l'applicazione con un numero standard di threads
- durante l'esecuzione modifico il numero dei threads
- a seconda del nuovo valore il numero di threads in esecuzione sale
(o scende) dinamicamente
Tutto chiaro??
|
Er, no. :)
Un'applicazione parte sempre con un thread (il main) piu' un altro paio
interni. L'unico modo di "modificare il numero di threads" e' creare un
oggetto Thread (explicitamente o no) e farlo partire con start().
Una volta partito, non c'e' verso di terminarlo finche' non esce (escluso
stop() che e' deprecato) o la JVM termina.
Se quello che vuoi fare e' avere un certo numero di Runnable e associarli o
meno a threads a seconda di fattori esterni, puoi provare ad usare un
thread pool - e ricrearlo (o modificarne le dimensioni se possibile) quando
vuoi aumentare/diminuire il numero di thread applicativi disponibili..
Dai un'occhiata a http://sadun-
util.sourceforge.net/api/org/sadun/util/tp/ThreadPool.html e magari
http://sadun-util.sourceforge.net/api/org/sadun/util/ThreadBlockRunner.html
e vedi se ti servono.
(il thread pool non e' ridimensionabile).
--
You dont know what to do when you dont know what you're doing.
http://space.tin.it/computer/csadun
|
|
| Back to top |
|
 |
|