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求解水仙花数的方法
May 11 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
flask框架使用orm连接数据库的方法示例
Jul 16 Python
python导入模块交叉引用的方法
Jan 19 Python
使用PIL(Python-Imaging)反转图像的颜色方法
Jan 24 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
python 中xpath爬虫实例详解
Aug 26 Python
pytorch AvgPool2d函数使用详解
Jan 03 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
对python中arange()和linspace()的区别说明
May 03 Python
浅析Python中的随机采样和概率分布
Dec 06 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编写PDF文档生成器
2006/10/09 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
iOS10推送通知开发教程
2016/09/19 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
Highcharts 非常实用的Javascript统计图demo示例
2013/07/03 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
基于html5和nodejs相结合实现websocket即使通讯
2015/11/19 NodeJs
基于JavaScript将表单序列化类型的数据转化成对象的处理(允许对象中包含对象)
2015/12/28 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
AngularJS入门教程之路由与多视图详解
2016/08/19 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
Python中尝试多线程编程的一个简明例子
2015/04/07 Python
实例说明Python中比较运算符的使用
2015/05/13 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
python实现抖音点赞功能
2019/04/07 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
Fenty Beauty官网:蕾哈娜创立的美妆品牌
2021/01/07 全球购物
初中女生自我鉴定
2013/12/19 职场文书
学生安全承诺书
2014/05/22 职场文书
英语读书笔记
2015/07/02 职场文书
病假条格式范文
2015/08/17 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
详解MySQL数据库千万级数据查询和存储
2021/05/18 MySQL