#事件被创建的时候
#False状态
#wait()阻塞
#True状态
#wait() 非阻塞
#clear 设置状态为False
#set 设置状态为True

#数据库 --- 文件夹
#文件夹里有好多excel表格
#1.能够更方便的对数据进行增删改查
#2,安全访问的机制

#起两个线程
#第一个线程:连接数据库
#等待一个信号 告诉我我们之间的网络是通的
#连接数据库

#第二个线程:检测数据库的可连接情况
#time.sleep(0,2)    2
#将事件的状态设置为True

模拟连接数据库代码示例:

 1 import time
 2 import random
 3 from threading import Thread, Event
 4
 5 def connect_db(e):
 6     count = 0
 7     while count < 3:
 8         e.wait(0.5)   #状态为False的时候,我只等待0.5s就结束
 9         if e.is_set() == True:
10             print('连接数据库')
11             break
12         else:
13             count += 1
14             print('第%s连接失败'%count)
15     else:
16         #抛出数据库连接超时错误
17         raise TimeoutError('数据库连接超时')
18
19 def check_web(e):
20     time.sleep(random.randint(0,3))
21     e.set()
22
23 e = Event()
24 t1 = Thread(target=connect_db,args=(e,))
25 t2 = Thread(target=check_web,args=(e,))
26 t1.start()
27 t2.start()

运行结果:

转载于:https://www.cnblogs.com/xudj/p/10346823.html

Python--day41--事件和信号量之模拟连接数据库并在连接三次后抛出连接超时异常...相关推荐

  1. python输入字符a时停止_Python解释器在主提示符或从属提示符后输入中断符( )就会取消当前输入,回到主提示符,会抛出一个KeyboardInterrupt异常。...

    [单选题]下列对于字符编码的发展历史节点,正确的是( ). [单选题]Python3解释器执行 not 1 and 1的结果为( ). A. B. C. 0 D. 1 [单选题]Python3解释器执 ...

  2. Python异常捕获和抛出-对方不想和你说话并向你抛出了一个异常

    文章目录 异常信息 捕获异常 多重异常处理 抛出异常 内置异常类型 自定义异常类型 异常信息 Python使用异常类来管理异常信息.当发生异常的时候,程序会抛出一个异常信息,自动根据代码的层次查找异常 ...

  3. python随机生成10个整数列表_python_随机产生10个整数后找出最小值,最大值。

    i = 0 sum = 0 list_num = [] while i <10: ran_num = random.randint(1,20) if ran_num not in list_nu ...

  4. python让函数抛出异常,是否有任何对象可以使str()函数在python中抛出错误或异常?...

    我有一个函数,要求输入是一个字符串. 我知道我可以断言或检查输入类型,但我想尽可能地处理它. 我有以下代码来处理它.但我想知道是否有任何情况,这一行可以抛出我需要处理的异常. def foo(any_ ...

  5. python中用来抛出异常的关键字是( )_python异常抛出

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 主动抛出异常raise typeerror(类型错误) # 7. 触发异常try ...

  6. 【Python开发】Flask开发实战:个人博客(三)

    Flask开发实战:个人博客(三) 在[Python开发]Flask开发实战:个人博客(一) 中,我们已经完成了 数据库设计.数据准备.模板架构.表单设计.视图函数设计.电子邮件支持 等总体设计的内容 ...

  7. python中自定义超时异常的几种方法

    最近在项目中调用第三方接口时候,经常会出现请求超时的情况,或者参数的问题导致调用异代码异常.针对超时异常,查询了python 相关文档,没有并发现完善的包来根据用户自定义的时间来抛出超时异常的模块.所 ...

  8. java执行python提示import os找不到_java利用Jython调用python抛出错误ImportError: No module named odbchelper...

    Python代码: import odbchelper def add(x, y): """ add method """ return x ...

  9. python离散事件仿真库SimPy官方教程

    参考:SimPy Discrete event simulation for Python 建议先简单了解仿真原理:离散事件仿真原理DES 简单介绍 simpy的实现关键在于生成器的使用,通过例子说明 ...

最新文章

  1. ssh协议是osi_TCP/IP 协议模型
  2. 2022最新款,官宣100000个跨年红包封面,直接领!!
  3. c#中调用Excel
  4. mac 二进制安装mysql_如何在MAC中安装mysql二进制分发版
  5. 印度朋友手把手教你学Scala(10):Scala里的样本对象
  6. jQuery~函数封装记1
  7. 《STL源码剖析》笔记
  8. 快逸报表多数据源解决办法以及项目多数据源切换方法
  9. traceroute/tracert原理
  10. 爬虫基础 || 2.1 request介绍(功能比urllib丰富,附上简单的知乎爬虫)
  11. MongoDBCompass使用教程
  12. 微信更换绑定手机人工服务器,微信更换已绑定手机号码的操作方法
  13. 关于常用第三方统计平台比较
  14. 中文文案排版 - 中文排版教程
  15. 零基础学大数据难吗?
  16. Vscode的beautify插件使用
  17. 75寸电视长宽多少厘米
  18. 听课记录(09/22)
  19. mean(求均值),max/min(求最值)
  20. Scalar Evolution

热门文章

  1. php原生 文章浏览量,调用WordPress函数统计文章访问量及PHP原生计数器的实现
  2. python导出csv不带引号的句子_python csv writer在不需要时添加引号
  3. 怎样快速学习html5,如何快速学习HTML5?带你了解HTML5学什么?
  4. python工程师面试题-朋友去面试Python工程师,又带回来几道基础题,Python面试题No10...
  5. 高级数据结构 线段树
  6. 应用PlanAhead 进行布局规划
  7. 虚拟机中docker安装mysql远程无法访问解决方法
  8. Linux学习 - 目录的权限操作
  9. SQL Server 2016新特性:列存储索引新特性
  10. mongoengine中queryset触发网络访问机制剖析