+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Multithreading con Python

  1. #1
    lucagalbu non è in linea Scolaretto
    Luogo
    Italy
    Post
    244

    Multithreading con Python

    Ciao,
    sto provando ad implementare il multithreading con Python. Per ora ho scritto questo script semplicissimo
    codice:
    #!/usr/bin/env python
    
    import threading
    import Queue
    
    
    
    class thread_vicini(threading.Thread):
        def __init__(self):
            threading.Thread.__init__(self)
        def run(self):
            a=0
            for i in xrange(1000000):
                b=a+1
            
    
    def start_thread():
        for i in xrange(512):
            t=thread_vicini()
            t.start()
           # t.join()
    
    
    start_thread()
    Quello che non capisco è perché il numero di thread simultanei si blocca a 2 se decommento la linea con
    codice:
    t.join()
    Senza questa linea il sistema arriva ad eseguirmi anche 500 threads simultaneamente, ma perché se impongo il join me ne esegue solo 2 per volta?
    Colui che pone una domanda è uno sciocco per cinque minuti; colui che non pone una domanda rimane uno sciocco per sempre

  2. #2
    Post
    4,740
    Blogs
    12
    Quote Originariamente inviato da lucagalbu Visualizza il messaggio
    Senza questa linea il sistema arriva ad eseguirmi anche 500 threads simultaneamente, ma perché se impongo il join me ne esegue solo 2 per volta?
    Leggi qui: threading. Il comportamento è del tutto normale, in realtà viene eseguito un thread per volta: il join() blocca il thread/codice chiamante fino a quando il thread su cui si chiama il metodo join non termina la propria esecuzione.
    Ultima modifica di Master85; 04-01-2013 16:00 

  3. #3
    lucagalbu non è in linea Scolaretto
    Luogo
    Italy
    Post
    244
    Grazie Master85!
    Ho spostato il join in un ciclo a parte e ora funziona
    Colui che pone una domanda è uno sciocco per cinque minuti; colui che non pone una domanda rimane uno sciocco per sempre

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi