mirror of https://github.com/python/cpython.git
33 lines
773 B
Python
33 lines
773 B
Python
import unittest
|
|
from threading import Thread
|
|
from operator import methodcaller
|
|
|
|
|
|
class TestMethodcaller(unittest.TestCase):
|
|
def test_methodcaller_threading(self):
|
|
number_of_threads = 10
|
|
size = 4_000
|
|
|
|
mc = methodcaller("append", 2)
|
|
|
|
def work(mc, l, ii):
|
|
for _ in range(ii):
|
|
mc(l)
|
|
|
|
worker_threads = []
|
|
lists = []
|
|
for ii in range(number_of_threads):
|
|
l = []
|
|
lists.append(l)
|
|
worker_threads.append(Thread(target=work, args=[mc, l, size]))
|
|
for t in worker_threads:
|
|
t.start()
|
|
for t in worker_threads:
|
|
t.join()
|
|
for l in lists:
|
|
assert len(l) == size
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|