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 11 Python
python&amp;MongoDB爬取图书馆借阅记录
Feb 05 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
Python 删除连续出现的指定字符的实例
Jun 29 Python
django框架使用方法详解
Jul 18 Python
Pandas之groupby( )用法笔记小结
Jul 23 Python
python 回溯法模板详解
Feb 26 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
详解Python 中的 defaultdict 数据类型
Feb 22 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将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
JS+CSS实现鼠标滑过时动态翻滚的导航条效果
2015/09/24 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
使用cookie绕过验证码登录的实现代码
2017/10/12 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
Element-ui upload上传文件限制的解决方法
2021/01/22 Javascript
[59:59]EG vs IG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python批量转换文件编码格式
2015/05/17 Python
在Linux命令行终端中使用python的简单方法(推荐)
2017/01/23 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
python处理RSTP视频流过程解析
2020/01/11 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
css3 伪类选择器快速复习小结
2019/09/10 HTML / CSS
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
车工岗位职责
2013/11/26 职场文书
皮肤科医师岗位职责
2013/12/04 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
毕业生个人总结
2015/02/28 职场文书
Python实现视频自动打码的示例代码
2022/04/08 Python