欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python time.sleep()-睡眠线程还是进程?

程序员文章站 2022-06-17 08:18:34
它会阻止线程。如果查看Python源代码中的Modules / timemodule.c,您会看到在调用中floatsleep(),睡眠操作的实质部分包含在Py_BEGIN_ALLOW_THREADS和Py_END_ALLOW_THREADS块中,允许其他线程继续执行当前线程睡觉。你也可以用一个简单 ......

它会阻止线程。如果查看python源代码中的modules / timemodule.c,您会看到在调用中floatsleep(),睡眠操作的实质部分包含在py_begin_allow_threads和py_end_allow_threads块中,允许其他线程继续执行当前线程睡觉。你也可以用一个简单的python程序来测试它:

 

import time
from threading import thread

class worker(thread):
    def run(self):
        for x in xrange(0,11):
            print x
            time.sleep(1)

class waiter(thread):
    def run(self):
        for x in xrange(100,103):
            print x
            time.sleep(5)

def run():
    worker().start()
    waiter().start()

哪个会打印:

>>> thread_test.run()
0
100
>>> 1
2
3
4
5
101
6
7
8
9
10
102