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

Posted pythongood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python time.sleep()-睡眠线程还是进程?相关的知识,希望对你有一定的参考价值。

它会阻止线程。如果查看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

前每日优鲜python全栈开发工程师收python学徒,辅导python啦

以上是关于python time.sleep()-睡眠线程还是进程?的主要内容,如果未能解决你的问题,请参考以下文章

python函数深入浅出 16.time.sleep()函数详解

python-thread & threading

time.sleep 不适用于多线程

Python time 模块

uWSGI, Thread, time.sleep 使用问题

time.sleep(5) 会让整个程序进入睡眠状态?