Fri 01 April 2011
Multithreaded é quando temos mais de um programa executando ao mesmo tempo, totalmente diferente de executar duas vez o mesmo programa, com "threads" o sistema vai ser executado apenas uma vez e via thread vai processar mais de uma função ao mesmo tempo, isso é necessario para concorrência em sistema.
Algumas vantagens de trabalha com threads:
Uma thread tem um começo, meio e fim, assim podemos colocar um ponteiro de instrução para acompanhar onde esta sendo processado cada thread dentro de seu contexto.
Iniciando uma nova Thread:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import thread
import time
# Definição da função de thread
def print_time( name, delay):
count = 0
while count < 5:
time.sleep(delay)
count += 1
print "%s: %s" % ( name, time.ctime(time.time()) )
# Criar dois tópicos
try:
thread.start_new_thread( print_time, ("Thread-1", 2, ) )
thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
print "Erro: não conseguiu iniciar a thread"
while 1:
pass
Executando:
avelino:multithreading/ [11:01:01] $ python example.py Thread-1: Thu Mar 31 11:03:20 2011 Thread-2: Thu Mar 31 11:03:22 2011 Thread-1: Thu Mar 31 11:03:22 2011 Thread-1: Thu Mar 31 11:03:24 2011 Thread-2: Thu Mar 31 11:03:26 2011 Thread-1: Thu Mar 31 11:03:26 2011 Thread-1: Thu Mar 31 11:03:28 2011 Thread-2: Thu Mar 31 11:03:30 2011 Thread-2: Thu Mar 31 11:03:34 2011 Thread-2: Thu Mar 31 11:03:38 2011
Se repararmos temos alguns processo concorrendo ao mesmo tempos, dessa forma já estamos trabalhando com Thread.