![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多任务
yandajiangjun
这个作者很懒,什么都没留下…
展开
-
进程间通信-队列
队列:先进先出,后进后出栈:先进后出,后进先出之前的文章介绍过使用socket,文件都可以实现进程间通信,socket是通过网络通信,两个进程间可以不在同一个电脑上;而文件是存放在硬盘里,一个进程写文件,一个进程读文件,实现进程间通信。不管是socket还是文件最终都是把数据存放在内存里,那么我们可以直接用内存来实现进程间通信,这里可以用到队列(Queue),他是内存里的一块内存,一个进程往内...原创 2019-11-15 22:44:24 · 213 阅读 · 0 评论 -
多任务-进程
实现多任务除了线程,进程也可以 1 import multiprocessing 2 import time 3 def sing(): 4 for i in range(5): 5 print("正在唱歌") 6 time.sleep(0.1) 7 8 def dance(): 9 for i in range...原创 2019-11-08 19:35:55 · 101 阅读 · 0 评论 -
线程与进程的区别
1.了解进程,线程程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源和调度的基本单元。(用自己的话说,单进程就是一个程序本身,多进程就是多个程序)线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存...原创 2019-11-07 22:52:39 · 137 阅读 · 0 评论 -
UDP做一个多任务的聊天器
UDP做一个多任务的聊天器(与网络调试助手配合)实现既可以发送数据,也可以接收数据 1 from socket import * 2 import threading 3 4 def sd(udp_socket): 5 while True: 6 ...原创 2019-11-05 16:52:38 · 128 阅读 · 0 评论 -
线程死锁和银行家算法
1.死锁:在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。2. 避免死锁程序设计时要尽量避免(银行家算法)添加超时时间等3.银行家算法[背景知识]一个银行家如何将一定数目的资金安全地借给若干个客户,使这些客户既能借到钱完成要干的事,同时银行家又能收回全部资金而不至于破产,这就是银行家问题。这个问题同操作系统中资源分配问题十分相似:银行家就...原创 2019-11-05 15:42:58 · 216 阅读 · 0 评论 -
多线程共享全局变量
1.子线程,主线程共享全局变量 1 import threading 2 import time 3 4 num=100 5 6 def test1(): 7 global num 8 num+=100 9 print("-----test1----num:...原创 2019-11-04 20:55:00 · 386 阅读 · 0 评论 -
线程
0.前期准备知识:单核cpu:单核cpu一次只能处理一个任务(程序/进程),但我们现实中感觉的是,单核cpu能同时处理多个任务,因为单核cpu采用了时间轮片的方法,比如qq,微信,支付宝三个任务,系统会给每个任务分配指定的时间处理他们的工作,比如分配qq的时间片是0.000001s,不要小看0.00001s,cpu1秒可以处理数百万个数据,0.000001s也是可以处理很多数据的,同理微信,支付...原创 2019-11-03 22:13:01 · 766 阅读 · 0 评论