作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是线程新手,正在执行一个非常基本的线程示例。以下是我尝试执行的程序:
import os
import thread
import threading
def main():
t1=thread.start_new_thread(prints,(3,))
t2=thread.start_new_thread(prints,(5,))
t1.start()
t2.start()
#t1.join()
#t2.join()
def prints(i):
while(i>0):
print "i="+str(i)+"\n"
i=i-1
if __name__=='__main__':
main()
当我尝试执行时,我不断收到以下错误(AttributeError:'int'对象没有属性'start'):
Traceback (most recent call last):
i=3
File "thread_1.py", line 19, in <module>
i=2
i=1
main()
i=5
i=4
i=3
i=2
i=1
File "thread_1.py", line 8, in main
t1.start()
AttributeError: 'int' object has no attribute 'start'
从输出中可以看出,两者都在执行,但不是我期望的方式(这是交错打印或类似的东西)。看起来也更有顺序性。如何修改/更正我的程序以获得预期的输出?
最佳答案
来自 thread.start_new_thread
的文档(粗体我的):
Start a new thread and return its identifier.
所以你实际上是在 int
上调用 .start()
,这显然是不允许的。但正如您所注意到的,您实际上正在执行函数prints()
:
The thread executes the function function with the argument list args (which must be a tuple).
This SO 问题可能会解决您有关在 Python 中创建和使用线程的一些问题。
关于python - 获取属性错误: 'int' object has no attribute 'start' when trying to run a basic thread program,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35525484/
我是一名优秀的程序员,十分优秀!