关于python:time.sleep – 睡眠线程还是进程?

关于python:time.sleep – 睡眠线程还是进程?

time.sleep — sleeps thread or process?

在Python for * nix中,time.sleep()是否会阻塞线程或进程?


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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()

哪个会打印:

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

除了你的应用程序只有一个线程的情况之外,它只会睡眠线程,在这种情况下它将睡眠线程并有效地处理该过程。

关于睡眠的python文档并没有指定这个,所以我当然可以理解这种混乱!

http://docs.python.org/2/library/time.html


只是线程。


线程将阻塞,但进程仍然存在。

在单线程应用程序中,这意味着在您睡觉时一切都被阻止。在多线程应用程序中,只有您明确"睡眠"的线程才会阻塞,而其他线程仍在该进程中运行。


只有线程,除非您的进程有一个线程。


流程本身不可运行。关于执行,进程只是线程的容器。这意味着你根本不能暂停这个过程。它根本不适用于流程。


推荐阅读

    linux命令守护进程?

    linux命令守护进程?,系统,服务,环境,状态,名字,进程,异常,基础,代码,下来,如

    linux截取进程命令?

    linux截取进程命令?,系统,工作,状态,信息,进程,软件,地址,命令,标准,实时,lin

    linux退出进程命令?

    linux退出进程命令?,系统,软件,名称,代码,进程,报告,数字,暂停,状态,平台,lin

    linux下进程调试命令?

    linux下进程调试命令?,系统,工作,软件,信息,命令,基础,地址,状态,进程,实时,L

    linux命令限制进程?

    linux命令限制进程?,系统,时间,管理,周期,进程,命令,传播,地方,名称,标准,Lin

    linux长命令查看进程?

    linux长命令查看进程?,系统,状态,信息,数据,软件,进程,情况,总量,实时,命令,l

    linux切换进程命令?

    linux切换进程命令?,服务,系统,工具,地址,命令,基础,工作,标准,情况,状态,Lin

    linux查询命令进程?

    linux查询命令进程?,系统,名称,总量,情况,状态,进程,材料,工具,电脑,数据,怎

    linux命令如何杀进程?

    linux命令如何杀进程?,状态,系统,暂停,管理,进程,命令,平台,信息,工具,电脑,L

    linux常用命令查进程?

    linux常用命令查进程?,系统,情况,软件,工具,实时,代码,电脑,地址,总量,状态,

    linux命令进程状态?

    linux命令进程状态?,系统,状态,进程,命令,数据,管理,软件,名称,信息,参数,Lin

    linux查进程命令软件?

    linux查进程命令软件?,系统,软件,状态,进程,信息,命令,名称,数据,基础,表示,l

    linux中进程的命令?

    linux中进程的命令?,系统,进程,管理,状态,情况,信息,命令,平台,数据,实时,lin

    linux调用函数的命令?

    linux调用函数的命令?,系统,代码,策略,上调,时间,设计,通信,网络,设备,项目,

    linux查询线程命令?

    linux查询线程命令?,系统,第一,线程,命令,进程,代码,分时,软件,选项,界面,如

    linux命令搜索进程?

    linux命令搜索进程?,系统,状态,软件,情况,进程,命令,代码,信息,数据,实时,如

    linux外部命令调用?

    linux外部命令调用?,系统,软件,标准,命令,盘中,管理,外部,进程,程序,内存,lin

    linux怎么调用命令行?

    linux怎么调用命令行?,系统,地址,工具,工作,首页,终端,命令,密码,信息,情况,l

    linux查看命令行进程?

    linux查看命令行进程?,系统,软件,信息,状态,进程,名称,实时,命令,数据,电脑,

    监视进程命令linux?

    监视进程命令linux?,系统,状态,工作,地址,信息,进程,软件,命令,数据,实时,如