bugfix
This commit is contained in:
parent
eb105a7efa
commit
305215a435
@ -4,17 +4,17 @@ import random
|
|||||||
from appPublic.background import Background
|
from appPublic.background import Background
|
||||||
|
|
||||||
class ThreadWorkers:
|
class ThreadWorkers:
|
||||||
def __init__(self, worker_cnt=10):
|
def __init__(self, max_workers=10):
|
||||||
self.semaphore = threading.Semaphore(value=worker_cnt)
|
self.semaphore = threading.Semaphore(value=max_workers)
|
||||||
self.co_worker = 0
|
self.co_worker = 0
|
||||||
def _do(self, func, *args, **kwargs):
|
def _do(self, func, *args, **kwargs):
|
||||||
|
self.semaphore.acquire()
|
||||||
self.co_worker += 1
|
self.co_worker += 1
|
||||||
func(*args, **kwargs)
|
func(*args, **kwargs)
|
||||||
self.co_worker -= 1
|
self.co_worker -= 1
|
||||||
self.semaphore.release()
|
self.semaphore.release()
|
||||||
|
|
||||||
def do(self, func, *args, **kwargs):
|
def do(self, func, *args, **kwargs):
|
||||||
self.semaphore.acquire()
|
|
||||||
b = Background(self._do, func, *args, **kwargs)
|
b = Background(self._do, func, *args, **kwargs)
|
||||||
b.start()
|
b.start()
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ if __name__ == '__main__':
|
|||||||
print('current workers=',worker.get_workers(), 'sleep=', t)
|
print('current workers=',worker.get_workers(), 'sleep=', t)
|
||||||
time.sleep(t)
|
time.sleep(t)
|
||||||
|
|
||||||
w = ThreadWorkers()
|
w = ThreadWorkers(max_workers=30)
|
||||||
for i in range(100000):
|
for i in range(100000):
|
||||||
w.do(k, w)
|
w.do(k, w)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user