Имеем такой тестовый код:
import threading
import random
lock = threading.BoundedSemaphore(value=5)
def write(*args, **kwargs):
global lock
lock.acquire()
print "Thread name: %s. Result %-6f" % (args)
lock.release()
class App(threading.Thread):
def __init__(self, *args, **kwargs):
threading.Thread.__init__(self, *args, **kwargs)
def run(self):
for i in xrange(5000):
r = random.random()
i = i*i-789*96/2*r
write(self.name, i)
for i in xrange(5):
app = App(name="THREADING_%d" % (i))
app.start()
Ну вот все хорошо, но ощущение, что замки не срабатывают. На скрине видно, что строки в консоль попадают неровно. Так должно быть?