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多线程、异步+多进程爬虫实现代码
Feb 17 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
Python进阶之尾递归的用法实例
Jan 31 Python
python如何去除字符串中不想要的字符
Jul 05 Python
python设置值及NaN值处理方法
Jul 03 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
Python代码中如何读取键盘录入的值
May 27 Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
csdn 批量接受好友邀请
2009/02/19 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
详解vue mint-ui源码解析之loadmore组件
2017/10/11 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
Python3读取Excel数据存入MySQL的方法
2018/05/04 Python
python os用法总结
2018/06/08 Python
Python2和Python3.6环境解决共存问题
2018/11/09 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
一年级家长会邀请函
2014/01/25 职场文书
2014年3.15团委活动总结
2014/03/16 职场文书
股权收购意向书
2014/04/01 职场文书
求职信格式要求
2014/05/23 职场文书
尊师重教演讲稿
2014/09/04 职场文书
六一儿童节园长致辞
2015/07/31 职场文书
情人节单身感言
2015/08/03 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server
python神经网络 使用Keras构建RNN训练
2022/05/04 Python
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android