gpt4 book ai didi

python - 获取属性错误: 'int' object has no attribute 'start' when trying to run a basic thread program

转载 作者:行者123 更新时间:2023-12-01 04:06:21 26 4
gpt4 key购买 nike

我是线程新手,正在执行一个非常基本的线程示例。以下是我尝试执行的程序:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com