tutorial thread parallelism ejemplos and python multithreading ipc

python - thread - Excepción en el hilo: debe ser una secuencia, no una instancia



python pool thread (1)

El parámetro args para threading.Thread El args debe ser una tupla y está pasando (q) que no lo es, es lo mismo que q .

Supongo que querías una tupla de 1 elemento: deberías escribir (q,) .

Estoy trabajando en python e intento ejecutar un subproceso que toma 1 parámetro "q", pero cuando trato de ejecutarlo, ocurre una extraña excepción, aquí está mi código:

class Workspace(QMainWindow, Ui_MainWindow): """ This class is for managing the whole GUI `Workspace''. Currently a Workspace is similar to a MainWindow """ def __init__(self): try: from Queue import Queue, Empty except ImportError: #from queue import Queue, Empty # python 3.x print "error" ON_POSIX = ''posix'' in sys.builtin_module_names def enqueue_output(out, queue): for line in iter(out.readline, b''''): queue.put(line) out.close() p= Popen(["java -Xmx256m -jar bin/HelloWorld.jar"],cwd=r''/home/karen/sphinx4-1.0beta5-src/sphinx4-1.0beta5/'',stdout=PIPE, shell=True, bufsize= 4024) q = Queue() t = threading.Thread(target=enqueue_output, args=(p.stdout, q)) #t = Thread(target=enqueue_output, args=(p.stdout, q)) t.daemon = True # thread dies with the program t.start() # ... do other things here def myfunc(q): while True: try: line = q.get_nowait() # or q.get(timeout=.1) except Empty: print('''') else: # got line # ... do something with line print "No esta null" print line thread = threading.Thread(target=myfunc, args=(q)) thread.start()

Falla con el siguiente error:

Exception in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner self.run() File "/usr/lib/python2.7/threading.py", line 504, in run self.__target(*self.__args, **self.__kwargs) TypeError: myfunc() argument after * must be a sequence, not instance

¡No tengo idea de lo que está pasando! ¡Ayuda por favor!