Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 time.sleep对线程访问的影响_Python_Multithreading_Sleep_Thread Sleep - Fatal编程技术网

Python time.sleep对线程访问的影响

Python time.sleep对线程访问的影响,python,multithreading,sleep,thread-sleep,Python,Multithreading,Sleep,Thread Sleep,在python中,我有一个访问全局对象的多线程应用程序。我很好奇,如果我将time.sleep()放在一个即将访问全局对象的线程(比如线程1)上,time.sleep()是否会延迟线程1对全局对象的访问,这样其他没有时间的线程就可以访问全局对象了。sleep()是否能够首先访问全局对象?线程在Python中非常复杂,并且在同一内存堆中运行。线程基本上是并行运行的,即多个线程交错在一起,这样一次只运行一次,它们在很短的时间内交替运行(考虑到它们需要访问解释器) 当你让一个线程进入睡眠状态时,它基本

在python中,我有一个访问全局对象的多线程应用程序。我很好奇,如果我将time.sleep()放在一个即将访问全局对象的线程(比如线程1)上,time.sleep()是否会延迟线程1对全局对象的访问,这样其他没有时间的线程就可以访问全局对象了。sleep()是否能够首先访问全局对象?

线程在Python中非常复杂,并且在同一内存堆中运行。线程基本上是并行运行的,即多个线程交错在一起,这样一次只运行一次,它们在很短的时间内交替运行(考虑到它们需要访问解释器)

当你让一个线程进入睡眠状态时,它基本上使用了底层的系统睡眠功能,并阻止了对它的所有操作。但是,其他线程肯定是可操作的。因此,当您说THREAD1在即将访问全局变量之前处于睡眠状态时,其他线程显然会使用该变量,因为它们正在运行,而THREAD1没有


一旦THREAD1唤醒(如果需要),它将获取GIL,从而访问全局变量。由于并发性,它再次与其他线程交叉,因此在激活时可以立即访问全局变量。如果其他线程正在使用它,那么在THREAD1开始操作之前,它们就会放弃访问权限

线程在Python中非常复杂,并且在同一内存堆中运行。线程基本上是并行运行的,即多个线程交错在一起,这样一次只运行一次,它们在很短的时间内交替运行(考虑到它们需要访问解释器)

当你让一个线程进入睡眠状态时,它基本上使用了底层的系统睡眠功能,并阻止了对它的所有操作。但是,其他线程肯定是可操作的。因此,当您说THREAD1在即将访问全局变量之前处于睡眠状态时,其他线程显然会使用该变量,因为它们正在运行,而THREAD1没有


一旦THREAD1唤醒(如果需要),它将获取GIL,从而访问全局变量。由于并发性,它再次与其他线程交叉,因此在激活时可以立即访问全局变量。如果其他线程正在使用它,那么在THREAD1开始操作之前,它们就会放弃访问权限

据我所知,如果您在访问全局对象之前在线程1上设置睡眠,那么其他没有睡眠的线程将首先获得访问权限。你们到底想问什么?据我所知,若你们在访问全局对象之前在线程1上设置睡眠,那个么其他并没有睡眠的线程将首先获得访问权。你到底想问什么?