Блокирует поток. Если вы заглянете в Modules / 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