多线程
文章平均质量分 85
python 多线程
LCY133
这个作者很懒,什么都没留下…
展开
-
基于python的多线程编程与TCP多线程实现(多线程,线程锁,线程池 单例模式)
多线程原创 2023-02-05 14:47:37 · 1599 阅读 · 1 评论 -
python 库pyserial的使用 多线程与类的操作
PC安装方式:pip install pyserial导入:import serialclass serialClass(object): def __init__(self,Com,BaudList,ParityList,DataBits,StopBits): self.Com = Com self.BaudRate = BaudList[0] self.Parity = ParityList[0] self.DataBits =原创 2020-08-19 00:45:24 · 1918 阅读 · 0 评论 -
python 实现多线程UDP聊天器
代码:import socketimport threadingdef udpSend(udp_s,ip,port): while True: sendCont = input('请输入要发送的内容:') udp_s.sendto(sendCont.encode(),(ip,port))def udpRecv(udp_s): while True: recvCont = udp_s.recvfrom(1024) pri原创 2020-07-06 19:09:24 · 2446 阅读 · 0 评论 -
线程同步
任务介绍:实现:天猫精灵:小爱同学小爱同学:在天猫精灵:现在几点了?小爱同学:你猜猜现在几点了实现方式:一个类叫天猫精灵 一个类叫小爱同学 在两者里面分别加入说的话使用了上下文管理器from threading import Condition其中涉及到等待与唤醒两个方法等待和唤醒必须成对出现,通过等待和唤醒可以让两个线程进行通讯,可以让两个线程中的某些语句交替执行,实现了线程之间的通讯等待:self.cond.wait()唤醒:self.cond.notify()sel原创 2020-07-05 18:35:16 · 237 阅读 · 0 评论 -
python实现死锁和重入锁
在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。import threadingimport timeclass MyThread1(threading.Thread): def run(self): # 对mutexA上锁 mutexA.acquire() # mutexA上锁后,延时1秒,等待另外那个线程 把mutexB上锁 print(self.name+'----do1-原创 2020-07-05 17:45:41 · 306 阅读 · 0 评论 -
python 多线程 互斥锁和死锁
在上一节提到的资源抢占的问题,那么这个问题如何解决呢?互斥锁就可以解决这个问题:资源抢占的问题原因在于两个线程操作同一个资源,此时这个资源的内容就混乱了,对于两个线程都不能正常服务此时就可以考虑在一个线程工作的时候,将线程锁定,其他线程无法访问,这就是互斥锁当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制某个线程要更改共享数据时,先将其锁定,此时资源的状态为"锁定",其他线程不能改变,只到该线程释放资源,将资源的状态变成"非锁定",其他的线程才能再次锁定该资源。互斥锁保证了每次只有一个线原创 2020-07-05 16:10:36 · 247 阅读 · 0 评论 -
多线程函数的传参
import threadingimport timenum = [1,2]def demo1(num): num.append(33) print(f'demo1 ----{num}')def demo2(num): print(f'demo2----{num}')def main(): #class threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, da原创 2020-07-03 20:07:47 · 325 阅读 · 0 评论 -
线程中的全局变量与抢占资源
声明一个全局变量,当我们修改全局变量中的内容时,其他线程也会收到相应的修改。import threadingimport timenum = 100#global numdef demo1(): global num for i in range(100): num+=1 print(f'----demo1---{num}')def demo2(): global num #num+=1 print(f'----demo2--原创 2020-07-03 20:06:38 · 356 阅读 · 0 评论 -
守护线程与主线程等待子线程
在执行完主线程后以上程序继续执行子线程的后续内容,并不会立刻退出:import threadingimport timedef main(): t1 = threading.Thread(target=demo1) t2 = threading.Thread(target=demo2) t1.start() t2.start()def demo3(): for i in range(3): print('----demo3----')d原创 2020-07-03 20:06:08 · 304 阅读 · 0 评论 -
基于python实现多线程
首先科普一个问题:多任务:两个事情同时执行;一个人同时执行两个事情的方式主要通过手头处理一件事情,另一件事情自动跑着,边扫地边用洗衣机洗衣服。或者根本用的不是一个器官……边跑步边听音乐。计算机处理两件事情,因为计算机处理事情用的是CPU,要处理事情需要CPU在两件事情间穿插,不停的切换此时要谈到CPU的执行任务方式:并发和并行并发:两件事情同时触发,穿插执行,此时的情况是CPU个数(几个核)<任务个数,一个CPU穿插着执行几件事情并行:一个CPU只作一件事情本文通过python实现多线程,原创 2020-07-03 20:05:40 · 282 阅读 · 0 评论