python 实现两个线程交替执行


Posted in Python onMay 02, 2020

我就废话不多说,直接看代码吧!

import threading
import time

def a():
  while True:
    lockb.acquire()
    print('a')
    locka.release()
    time.sleep(0.5)


def b():
  while True:
    locka.acquire()
    print('b')
    lockb.release()
    time.sleep(0.5)


if __name__ == "__main__":
  locka = threading.Lock()
  lockb = threading.Lock()

  ta = threading.Thread(None, a)
  tb = threading.Thread(None, b)

  locka.acquire()   #保证a先执行

  ta.start()
  tb.start()

获取对方的锁,运行完后释放自己的锁

补充知识:线程同步——两个线程轮流执行python实现

看代码!

import threading
import time
lockA=threading.Lock()
lockB=threading.Lock()
def printA(n):
 if n<0:
  return
 lockA.acquire()
 print("+++")
 lockB.release()
 time.sleep(0.1)
 printA(n-1)
def printB(n):
 if n<0: 
  return
 lockB.acquire()
 print("***")
 lockA.release()
 time.sleep(0.2)
 printB(n-1) 
 
lockB.acquire()
t1=threading.Thread(target=printA,args=(10,))
t2=threading.Thread(target=printB,args=(10,))
t1.start()
t2.start()
t1.join()
t2.join()

找实习,又要回忆起操作系统的东西了。

思想:创建两个锁lockA和lockB。每次执行完后,锁掉自己的锁,并释放对方的锁。

初始时,若A先运行,则释放A的锁,锁住B的锁。

以上这篇python 实现两个线程交替执行就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
详解Python中用于计算指数的exp()方法
May 14 Python
儿童python练习实例
May 27 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
解决django前后端分离csrf验证的问题
Feb 03 Python
利用pandas合并多个excel的方法示例
Oct 10 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
pytorch 实现在预训练模型的 input上增减通道
Jan 06 Python
使用TFRecord存取多个数据案例
Feb 17 Python
Python定义一个函数的方法
Jun 15 Python
基于Keras的格式化输出Loss实现方式
Jun 17 Python
Python面向对象实现方法总结
Aug 12 Python
Python中使用threading.Event协调线程的运行详解
May 02 #Python
浅谈Python3多线程之间的执行顺序问题
May 02 #Python
python继承threading.Thread实现有返回值的子类实例
May 02 #Python
Python3-异步进程回调函数(callback())介绍
May 02 #Python
浅谈Python中threading join和setDaemon用法及区别说明
May 02 #Python
判断Threading.start新线程是否执行完毕的实例
May 02 #Python
python中threading开启关闭线程操作
May 02 #Python
You might like
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
2016/11/26 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
vue h5移动端禁止缩放代码
2019/10/28 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
js编写简易的计算器
2020/07/29 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python版微信跳一跳游戏辅助
2018/01/11 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
在django模板中实现超链接配置
2019/08/21 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
英语专业应届生求职信范文
2013/11/15 职场文书
商务英语本科生的自我评价分享
2013/11/15 职场文书
应届行政管理专业个人自我评价
2013/12/28 职场文书
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
竞选学生会主席演讲稿
2014/04/24 职场文书
道德之星事迹材料
2014/05/03 职场文书
端午节活动总结报告
2015/02/11 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis