输出
Linux-4.15.0-36-generic-x86_64-with-Ubuntu-16.04-xenial #39~16.04.1-Ubuntu SMP Tue Sep 25 08:59:23 UTC 2018 ('64bit', 'ELF') Python:2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] 6 6 -1 0 -28 -41 -40 -49 -56 -54 -60 -63 -68 -73 -69 -78 -53 -60 -53 -58 -48 -71 -82 -83 -130 -129 -111 -100 -84 -173 Linux-4.15.0-36-generic-x86_64-with-Ubuntu-16.04-xenial #39~16.04.1-Ubuntu SMP Tue Sep 25 08:59:23 UTC 2018 ('64bit', 'ELF') Python:3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0加锁后
from __future__ import division from __future__ import print_function import threading balance = 0 lock = threading.Lock() def change_it(n): global balance balance +=n balance -=n def run_thread(n): for i in range(10000): lock.acquire() try: change_it(n) finally: lock.release() def create_thread(): for i in range(30): t1 = threading.Thread(target=run_thread,args=(1,)) t2 = threading.Thread(target=run_thread,args=(-1,)) t1.start() t2.start() t1.join() t2.join() print(balance) def _test_thread(): create_thread() def test(): _test_thread() test()输出
Linux-4.15.0-36-generic-x86_64-with-Ubuntu-16.04-xenial #39~16.04.1-Ubuntu SMP Tue Sep 25 08:59:23 UTC 2018 ('64bit', 'ELF') Python:2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Linux-4.15.0-36-generic-x86_64-with-Ubuntu-16.04-xenial #39~16.04.1-Ubuntu SMP Tue Sep 25 08:59:23 UTC 2018 ('64bit', 'ELF') Python:3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0转载于:https://www.cnblogs.com/vercont/p/10210139.html
相关资源:Python多线程编程方式2 threading库的介绍源码