Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 同时运行多个线程_Python_Multithreading - Fatal编程技术网

Python 同时运行多个线程

Python 同时运行多个线程,python,multithreading,Python,Multithreading,因此,我的目标是让do\u something()函数启动自己的线程,以便do\u something()可以并行运行,而不必等待前一个线程完成。问题在于它似乎不是多线程(意味着一个线程在另一个线程启动之前完成) 我还有一个current_-thread().ident在do_-something()函数中,但启动的线程的标识似乎与运行python脚本的主线程相同。我认为我的方法是错误的 这是一个常见且容易出错的错误 target=do_something();但也什么都不做 您必须传递实际函数

因此,我的目标是让
do\u something()
函数启动自己的线程,以便
do\u something()
可以并行运行,而不必等待前一个线程完成。问题在于它似乎不是多线程(意味着一个线程在另一个线程启动之前完成)


我还有一个
current_-thread().ident
do_-something()
函数中,但启动的线程的标识似乎与运行python脚本的主线程相同。我认为我的方法是错误的

这是一个常见且容易出错的错误

target=do_something();但也什么都不做

您必须传递实际函数,而不是结果:

t = threading.Thread(target=do_something)

将更好地工作

是的,其中一对邪恶的记号再次划过,我相信@Jean-François Fabre关于眼前的问题是正确的。即使解决了这个问题,您也应该知道,在Python中,线程并不是真正同时运行的,因为在大多数情况下,Python解释器不能同时解释两个或多个不同的执行线程(并且具有称为GIL(全局解释器锁)的功能)相反,它会运行一个线程,直到它阻止等待共享资源、I/O或调用
sleep()
,然后才切换到运行另一个线程(如果有的话),等待轮到它。
t = threading.Thread(target=do_something)