例子:

from threading import Thread,Lock
from time import sleep, ctime global_num = [] def func1():
global global_num
for i in range(5):
sleep(1) #假设是最耗时的主过程
lock.acquire()#两个线程会最开始抢这个锁,拿到锁就会处于关锁,执行后面的程序,其他线程执行处于监听状态,等待这个线程开锁,再抢锁
global_num.append(1)
print('-----%s---func1----:global_num=%s--------\n'%(ctime(),global_num))
lock.release() def func2():
global global_num
for i in range(3):
sleep(1)
lock.acquire()
global_num.append(2)
print('-----%s---func2-----:global_num=%s========\n'%(ctime(),global_num))
lock.release() print('global_num=',global_num) lock = Lock() t1 = Thread(target=func1)
t1.start() t2 = Thread(target=func2)
t2.start() t1.join()
t2.join()
print('global_num=%s\n'%global_num)

  python进阶之多线程对同一个全局变量的处理

最新文章

  1. Kosaraju 算法检测有向图的强连通性
  2. 推荐一个Android Studio很实用的插件android-butterknife-zelezny
  3. SQL调优之降龙十八掌系列
  4. Qt通过QToolTip显示浮动信息
  5. Spark Job Scheduling
  6. Ajax学习(1)-简单ajax案例
  7. SRM 404(1-250pt, 1-500pt)
  8. ModelAndView解析
  9. 利用HttpWebRequest和HttpWebResponse获取Cookie并实现模拟登录
  10. hdu2089 不要62--经典数位DP
  11. Django2 Django MTV模板
  12. 使用JSch远程执行shell命令
  13. gist.github.com 被墙无法访问解决办法
  14. BZOJ1304 CQOI2009叶子的染色(树形dp)
  15. drozer工具的安装与使用:之一安装篇
  16. Druid-目前最好的连接池
  17. DataTable--数据生成datatable
  18. 8、Redis中sort命令详解
  19. mysql主从复制配置问题
  20. 自定义vue全局组件use使用(解释vue.use()的原理)

热门文章

  1. Xmind 8 pro 软件破解版
  2. delphi执行查询语句时的进度条怎么做
  3. 一本通1632【 例 2】[NOIP2012]同余方程
  4. ubuntu系统部署web项目
  5. 洛谷P3703 [SDOI2017]树点涂色(LCT,dfn序,线段树,倍增LCA)
  6. 【题解】 bzoj1190: [HNOI2007]梦幻岛宝珠 (动态规划)
  7. NOIP2017 列队——动态开点线段树
  8. CF1025D Recovering BST
  9. (转)eclipse设置默认编码格式为UTF-8
  10. 基于CMS的组件复用实践