在Python中创建多个线程会导致运行时错误
我正在尝试给一个Python应用程序添加多线程功能,所以我先从一些简单的例子开始:
import threading
def myfunc(arg1, arg2):
print 'In thread'
print 'args are', arg1, arg2
thread = threading.Thread(target=myfunc, args=('asdf', 'jkle'))
thread.start()
thread.join()
这个运行得很好,但一旦我尝试启动第二个线程,就会出现一个运行时错误:
import threading
def myfunc(arg1, arg2):
print 'In thread'
print 'args are', arg1, arg2
thread = threading.Thread(target=myfunc, args=('asdf', 'jkle'))
thread2 = threading.Thread(target=myfunc, args=('1234', '3763763é'))
thread.start()
thread2.start()
thread.join()
thread2.join()
因为其他人似乎在运行这段代码时没有问题,所以我想补充一下,我使用的是Windows 7 x64专业版,Python版本是32位的2.6.3(如果这有影响的话)。
4 个回答
1
thread2 = threading.Thread(target=myfunc, args=('1234', '3763763é'))
你有把这个文件声明为UTF-8编码吗?-----------------------------------------------------^
1
你能把你遇到的具体错误发出来吗?
对我来说运行得很好(我把é
这个字符换成了e
):
In thread
args areIn thread
asdfargs are jkle1234
3763763e
如果我保留你发的原始脚本,并把文件保存为带有BOM的UTF-8格式在Windows上:
In thread
args areIn thread
asdfargs are jkle1234
3763763é
把你发的代码保存为ASCII格式会导致一个语法错误:
语法错误:在文件threadtest.py的第8行发现非ASCII字符'\xe9',但没有声明编码;详情请查看http://www.python.org/peps/pep-0263.html
环境信息:
C:\python -V
Python 2.6.2
C:\cmd
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
0
正如评论中所说,我觉得问题出在IDLE这个工具上,而不是我的代码。无论如何,还是谢谢你的帮助!
我给你的回答点了赞,但我会选择接受我自己的答案,因为这个问题没有真正的解决办法。