多线程事件

import time
import random
from threading import Thread,Event
def conn_db(e):
    count = 0
    while count < 3:
        e.wait(1)
        if e.is_set():
            print("连接数据库成功")
            break
        else:
            count += 1
            print("第{}次连接数据库失败".format(count))
    else:
        raise TimeoutError("数据库连接超时")
def check_web(e):
    time.sleep(random.randint(1,3))
    e.set()
e = Event()
t1 = Thread(target=conn_db,args=(e,))
t2 = Thread(target=check_web,args=(e,))
t2.start()
t1.start()

模拟连接数据库

原文地址:https://www.cnblogs.com/superniao/p/10126871.html

时间: 2024-11-05 21:48:22

多线程事件的相关文章

多线程-事件

创建  CreateEvent 销毁  CloseHandle 事件变为有信号(可以使用信号)  SetEvent 事件变为无信号(不可以使用信号)  ResetEvent 事件的创建 HANDLECreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCTSTR lpName ); 第一个参数表示安全控制,一般直接传入NULL. 第二个参数确定事件是手动置位还是

Python多线程-事件

线程事件用于线程控制线程,线程事件的初始值为False set:将线程事件的值设为True clear:将线程事件的值设为False # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import threading import time event = threading.Event() def MyEvent(): count = 1 event.set() while True: if count >5 and coun

Python基础之多线程事件Event

import threading,time class Boss(threading.Thread): def run(self): print("BOSS:伙计们今晚上加班到22:00") event.set() time.sleep(5) #模拟一个小时这段时间 print("BOSS:22:00了可以下班了") event.set() class Worker(threading.Thread): def run(self): event.wait() #等待

[02]WPF异步响应,自定义事件、委托——多线程处理

题记 在编写有GUI的程序时,会遇到这样一种情形:用户点击了一个按钮,程序处理这个事件,然而这个处理过程耗时间较长.我们不想让软件卡在这里,而是让用户可以继续使用其他的软件功能.这种问题可以用多线程的事件响应来解决.这里,我就WPF的多线程事件响应做一个简单的归纳. 一.简单的异步的事件响应 在WPF中,针对简单的多线程处理过程,我们可以使用.NET自带的BackgroundWork完成.BackgroundWork的处理过程就是异步的,不会让用户界面停止响应. using System.Com

c#多线程总结(纯干货)

线程基础 创建线程 static void Main(string[] args) { Thread t = new Thread(PrintNumbers); t.Start();//线程开始执行 PrintNumbers(); Console.ReadKey(); } static void PrintNumbers() { Console.WriteLine("Starting..."); for (int i = 1; i < 10; i++) { Console.Wri

Netty 5用户指南

Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠性的网络服务器和客户端程序.换句话说,Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,比如客户端和服务端的协议.Netty大大简化了网络程序的开发过程比如TCP和UDP的 Socket的开发. "快速和简单"并不意味着应用程序会有难维护和性能低的问题,Netty是一个精心设计的框架,它从许多协议的实现中吸收了很多的经验比如FTP.SMTP.HTTP.许多二进制和基于文本的传统协议,Netty在不

Netty 实现 WebSocket 聊天功能

准备 JDK 7+ Maven 3.2.x Netty 4.x Eclipse 4.x WebSocket WebSocket 通过"Upgrade handshake(升级握手)"从标准的 HTTP 或HTTPS 协议转为 WebSocket.因此,使用 WebSocket 的应用程序将始终以 HTTP/S 开始,然后进行升级.在什么时候发生这种情况取决于具体的应用;它可以是在启动时,或当一个特定的 URL 被请求时. 在我们的应用中,当 URL 请求以"/ws"

Netty 实现聊天功能

Netty 是一个 Java NIO 客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议.Netty 大大简化了网络程序的开发过程比如 TCP 和 UDP 的 socket 服务的开发.更多关于 Netty 的知识,可以参阅<Netty 4.x 用户指南>(https://github.com/waylau/netty-4-user-guide) 下面,就基于 Netty 快速实现一个聊天小程序. 准备 JDK 7+ Maven 3.2.x Netty 4.x E

alibaba的COBAR真是强大.

近好不容易抽空研究了下Cobar,感觉这个产品确实很不错(在文档方面比Amoeba强多了),特此推荐给大家.Cobar是阿里巴巴研发的关系型数据 的分布式处理系统,该产品成功替代了原先基于Oracle的数据存储方案,目前已经接管了3000+个MySQL数据库的schema,平均每天处理近 50亿次的SQL执行请求. 首先,使用Cobar的核心功能如下: 分布式: Cobar的分布式主要是通过将表放入不同的库来实现: 1. Cobar支持将一张表水平拆分成多份分别放入不同的库来实现表的水平拆分 2