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进行稳定可靠的文件操作详解
Dec 31 Python
python使用pil生成缩略图的方法
Mar 26 Python
Python3写入文件常用方法实例分析
May 22 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
将tensorflow的ckpt模型存储为npy的实例
Jul 09 Python
详解python中的time和datetime的常用方法
Jul 08 Python
Python实现汇率转换操作
May 03 Python
django创建超级用户时指定添加其它字段方式
May 14 Python
基于Python脚本实现邮件报警功能
May 20 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
详解Python爬虫爬取博客园问题列表所有的问题
Jan 18 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同时支持GIF、png、JPEG
2006/10/09 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
ThinkPHP中处理表单中的注意事项
2014/11/22 PHP
asp.net和php的区别点总结
2019/10/10 PHP
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
详解vue组件基础
2018/05/04 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
python合并文本文件示例
2014/02/07 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
如何基于线程池提升request模块效率
2020/04/18 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
python3 re返回形式总结
2020/11/20 Python
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
实习教师自我鉴定
2013/12/12 职场文书
大专会计自我鉴定
2014/02/06 职场文书
商场消防演习方案
2014/02/12 职场文书
协议书的格式
2014/04/23 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python