操作系统
主要:并发、异步、IO中断等
NQ31
没有东西是不可以取代的!
展开
-
python IPC机制和生产者与消费者(案例)
模型:生产者+媒介(队列)+消费者 这里队列用JoinableQueue这个模块,该模块有以下几个方法: JoinableQueue()内有自带计数器,每当队列放一个数据的时候,会自动+1 task_done()方法,每从队列取出一个数据的时候,会自动减1 q.join(),当计数器为0时候才会执行 同时:将消费者进程设置成守护进程,这样q.join()执行完毕的时候,消费者子进程也会跟着结束 c1.daemon=True 具体完整代码如下: # -*-coding:utf-8 -*- from原创 2020-09-05 10:31:45 · 181 阅读 · 0 评论 -
IO常用四种模型
阻塞IO模型(blocking IO) 因为通信的时候,数据是先复制到系统,再通过网线发送的,所以,recv在等待接受数据的时候,会先跟内核/操作系统要数据。进而出现两个等待过程,一个是系统等待对方发送数据、一个是应用程序等待系统的数据拷贝过来。 非阻塞IO(unLocking IO) 非阻塞IO是通过不断轮询,直到操作系统拿到数据,把数据拷贝给应用程序,但是,在操作系统将数据拷贝给用户进程的过程还是会被阻塞的(block)。 注意:需要关闭阻塞,server.setblocking(False)原创 2020-09-09 12:47:15 · 130 阅读 · 0 评论 -
并发编程中死锁、递归锁、进程/线程池、协程TCP服务器并发等知识点
1、死锁 定义; 类似两个人分别被囚禁在两间房子里,A手上拿着的是B囚禁房间的钥匙,而B拿着A的钥匙,两个人都没法出去,没法给对方开锁,进而造成死锁现象。 具体例子代码如下: # -*-coding:utf-8 -*- from threading import Thread,Lock,RLock import time muxeA=Lock() muxeB=Lock() class MyThread(Thread): def run(self): self.func1()原创 2020-09-08 15:55:45 · 134 阅读 · 0 评论 -
并发编程知识点
多道技术 并发:看起来像是同时运行,实际,是靠不断切换任务来实现的 并行:同时运行多个任务 时间复用:利用中间空闲时间做其他事情。比如;做饭、洗衣服、烧水,就可以先洗好米放锅里煮,然后去把衣服丢洗衣机洗,然后再去烧水,这样就不用等饭煮好,再去洗衣服,烧水。 空间复用:多个程序共用一套计算机硬件。比如,电脑同时打开微信、QQ 实质:切换+保存。每次切换都会保存切换的时候的状态。 单道技术(串行):按任务顺序执行 单道跟多道的比较如下: 进程 同步:等被依赖任务执行完后,再执行依赖任务。例子:去银行办理原创 2020-08-27 10:06:51 · 163 阅读 · 0 评论 -
设计简单的命令行myshell,并能在实验环境下运行
设计简单的命令行myshell,并能在实验环境下运行。 要求支持的命令如下: cd [directory]将当前目录改为 [directory] environ列出所有环境变量 ls列出指定目录下所有文件 help显示所有支持的命令 echo在屏幕上显示参数并换行 quit退出 shell 支持I/O重定向 常见的目录和文件操作,比如新建目录或文件,目录或文件的删除、...原创 2019-11-25 15:41:21 · 3851 阅读 · 5 评论