Enzo74 Pubblicato: 5 Dicembre 2006 Segnalazione Share Pubblicato: 5 Dicembre 2006 ciao ragazzi stavo provando del codice sui thread ma mi sono imbattuto in una routine dove è vero che non mi restituisce errori ma anche non fà quello che vorrei. praticamente volevo dei print (tre del primo thread e tre del secondo)... cosa sarà sbagliato? import thread running = 1 def funzione1(): while running: print "thread1_1" print "thread1_2" print "thread1_3" def funzione2(): thread.start_new_thread(funzione1, ()) print "thread2_1" print "thread2_2" print "thread2_3" def funzione3(): global running running = 0 Link to comment Condividi su altri siti More sharing options...
dokkis Pubblicato: 5 Dicembre 2006 Segnalazione Share Pubblicato: 5 Dicembre 2006 a funzionare funziona il metodo per far partire un thread parallelo l'ho gia utilizzato.. ma.. quello script è tutto li? ti manca cmq di far partire la funzione 2 o.o funzione2() a fine script per esempio.. in quel modo ok dichiari tutte le funzioni ma... non ne viene eseguita nemmeno 1 o.O Link to comment Condividi su altri siti More sharing options...
Oper Pubblicato: 5 Dicembre 2006 Segnalazione Share Pubblicato: 5 Dicembre 2006 (modificato) Presumo che manca la parte relativa al menu che chiama le varie funzioni, vero? Postalo completo che si può dare un'occhiata. [edit] Scrivendolo da console: quando viene chiamata la funzione2, il programma fa il print relativo alla funzione2 ma chiama come funzione il contenuto di funzione1. Praticamente si ottiene questo: >>>funzione2() thread2_1 >>>thread1_1 e il programma è in attesa dell'invio Modificato 5 Dicembre 2006 da Oper Link to comment Condividi su altri siti More sharing options...
Enzo74 Pubblicato: 5 Dicembre 2006 Autore Segnalazione Share Pubblicato: 5 Dicembre 2006 semplicemente richiamavo funzione1() funzione2() volevo fare un applicativo a titolo di prova che mi faceva partire le due funzioni con i print contemporaneamente invece ottengo i print in successione... in pratica mi esegue funzione1 e poi 2... il thread non mi funziona Link to comment Condividi su altri siti More sharing options...
Oper Pubblicato: 5 Dicembre 2006 Segnalazione Share Pubblicato: 5 Dicembre 2006 vedi la modifica alla mia risposta di prima. Link to comment Condividi su altri siti More sharing options...
dokkis Pubblicato: 5 Dicembre 2006 Segnalazione Share Pubblicato: 5 Dicembre 2006 a rigor di logica, se esegui prima la funzione 1 e poi la funzione 2, la funzione 2 non verrà eseguita fino a quando la funzione 1 non finisce il suo ciclo, al contrario se esegui prima la funzione 2 e poi la funzione 1, la funzione 2 è vero che richiama la funzione 1, ma sotto thread (processo parallelo indipendente dal processo principale dell'applicazione), per questo motivo dopo la funzione 2 viene eseguita la funzione 1.. in teoria dovrebbe essere cosi, in pratica non ho provato... Link to comment Condividi su altri siti More sharing options...
Enzo74 Pubblicato: 5 Dicembre 2006 Autore Segnalazione Share Pubblicato: 5 Dicembre 2006 perchè dovrebbero effettuare teoricamente un print ciascuno vero? Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 6 Dicembre 2006 Segnalazione Share Pubblicato: 6 Dicembre 2006 (modificato) Non e' detto che esegua un print ciascuno, potrebbe eseguirne zero, uno o piu' di uno... dipende tutto dall'algo interno al sistema operativo che si occupa di stabilire quale thread mandare in esecuzione e per quanto tempo, a seconda di qual'e' lo stato attuale. Uno degli algo piu' consciuti e diffusi per questo compito, e' il round-robin http://it.wikipedia.org/wiki/Scheduler Ma non mi stupirei che su symbian (<9.1) sia tutto gestito con il piu' grezzo fcfs (first come first served) Modificato 6 Dicembre 2006 da Il.Socio Link to comment Condividi su altri siti More sharing options...
Enzo74 Pubblicato: 6 Dicembre 2006 Autore Segnalazione Share Pubblicato: 6 Dicembre 2006 già... qualcuno ha reso funzionante quello script? Link to comment Condividi su altri siti More sharing options...
dokkis Pubblicato: 6 Dicembre 2006 Segnalazione Share Pubblicato: 6 Dicembre 2006 (modificato) già... qualcuno ha reso funzionante quello script? guarda io lo farei in questo modo uno script di esempio di utilizzo thread.. lo posto in allegato.. exthread.txt Modificato 6 Dicembre 2006 da dokkis Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora