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编程中包的概念与管理
Oct 16 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
Apr 05 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
python模拟登陆,用session维持回话的实例
Dec 27 Python
python实现银联支付和支付宝支付接入
May 07 Python
python使用time、datetime返回工作日列表实例代码
May 09 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
基于python+selenium的二次封装的实现
Jan 06 Python
python能否java成为主流语言吗
Jun 22 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 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
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
JavaScript代码执行的先后顺序问题
2017/10/29 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
遍历python字典几种方法总结(推荐)
2016/09/11 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
手写一个python迭代器过程详解
2019/08/27 Python
TensorFlow tf.nn.max_pool实现池化操作方式
2020/01/04 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python 实现批量图片识别并翻译
2020/11/02 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
CSS3 please 跨浏览器的CSS3产生器
2010/03/14 HTML / CSS
HTML5仿微信聊天界面、微信朋友圈实例代码
2018/01/29 HTML / CSS
PatPat阿根廷:妈妈们的购物平台
2019/05/30 全球购物
《母亲的恩情》教学反思
2014/02/13 职场文书
最经典的大学生职业生涯规划范文
2014/03/05 职场文书
食堂采购员岗位职责
2014/03/17 职场文书
日化店促销方案
2014/03/26 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
拉拉队口号
2014/06/16 职场文书
搞笑车尾标语
2014/06/23 职场文书
电气工程及其自动化专业求职信
2014/06/23 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
营业员岗位职责
2015/02/11 职场文书
行政处罚告知书
2015/07/01 职场文书
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android