| 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() |