質問

Pythonでは*nixな time.sleep() ブロックのスレッドのですか?

役に立ちましたか?

解決

このブロックのねじになります。見ればモジュール/timemodule.c、Pythonソースのままだと、呼び出 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ドキュメントの睡眠を指定していないことかだったので、理解を深めての混乱!

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

だけます。

のスレッドがブロックが、プロセスはまだまだ生きています。

単一のネジ付きの申請は、すべてが詰ます。は、下記からダウンロードでき用にスレッドに明示的に'眠り'ブロックされ、他のスレッドがある。

のスレッドの場合プロセスを単一のねじになります。

プロセスはrunnable。について、執行過程はただのコンテナです。意味のない一時停止の処理です。これは、単に適用されない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top