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使用scrapy抓取网站sitemap信息的方法
Apr 08 Python
python实现下载整个ftp目录的方法
Jan 17 Python
Python实现屏幕截图的两种方式
Feb 05 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
python中pytest收集用例规则与运行指定用例详解
Jun 27 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
python SVD压缩图像的实现代码
Nov 05 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
Jun 02 Python
idea2020手动安装python插件的实现方法
Jul 17 Python
python利用xlsxwriter模块 操作 Excel
Oct 14 Python
PyQt5 QThread倒计时功能的实现代码
Apr 02 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 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
laravel model 两表联查示例
2019/10/24 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
nodejs教程之异步I/O
2014/11/21 NodeJs
javascript的push使用指南
2014/12/05 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
vue项目打包之后背景样式丢失的解决方案
2019/01/17 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
python 简单的多线程链接实现代码
2016/08/28 Python
Python双精度浮点数运算并分行显示操作示例
2017/07/21 Python
ubuntu中配置pyqt4环境教程
2017/12/27 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
HTML5手机端弹出遮罩菜单特效代码
2016/01/27 HTML / CSS
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
自荐书范文范例
2014/02/13 职场文书
院领导写的就业推荐信
2014/03/09 职场文书
工作经历证明书范文
2014/11/02 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
Python可视化动图组件ipyvizzu绘制惊艳的可视化动图
2022/04/21 Python