10

我正在尝试在 python 2.6 中获取线程 ID 或名称我按照示例进行操作,但出现诸如未定义全局名称“currentThread”之类的错误全局名称“未定义当前线程”

(我尝试了 currentThread 和 current_thread)

这是我的代码:

vim f3Q.py
  1 import Queue
  2 from threading import Thread
  3
  4 def do_work(item):
  5         try:
  6                 print current_thread().getName()
  7
  8
  9         except Exception as details:
 10                 print details
 11                 pass
 12         print item*2
 13
 14 def worker():
 15         while True:
 16                 item=q.get()
 17                 do_work(item)
 18                 q.task_done()
 19
 20 q=Queue.Queue()
 21 l=[13,26,77,99,101,4003]
 22 for item in l:
 23         q.put(item)
 24
 25
 26 for i in range (4):
 27         t=Thread(target=worker,name="child"+str(i))
 28         t.daemon=True
 29         t.start()
 30
 31
 32 q.join()
 33

更新:我通过 Mata 给出的提示修复了错误,我也应该导入 current_thread()。

from threading import Thread,current_thread
4

2 回答 2

18

你没有导入threading,只有Thread.

要么 import threading,要么current_thread直接 import :

1 import Queue
2 from threading import Thread, current_thread
3
4 def do_work(item):
5         try:
6                 print current_thread()
于 2013-07-17T18:51:44.287 回答
5

这将起作用

from threading import Thread, current_thread

    def do_work(item):
       print current_thread().name
于 2015-12-09T14:03:15.570 回答