摘要: 一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去执行其他的任务(切换由操作系统强制控制),一种情况是该任务发生了阻塞,另外一种情况是该任务计算的时间 阅读全文
posted @ 2018-12-04 19:50 我是一名劍客 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 一、条件Condition 使得线程等待,只有满足某条件时,才释放n个线程 条件(condition) con.acquire() # 相当于锁 con.wait() # 等待notify传过来的钥匙 con.release() # 释放锁(不会换回钥匙,用完就没了) con = Condition 阅读全文
posted @ 2018-12-03 19:20 我是一名劍客 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 一 背景知识 1.进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个 阅读全文
posted @ 2018-11-30 18:04 我是一名劍客 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 管道: Pipe Conn1,conn2 = Pipe() 数据共享: M = Manager() Dic = m.dict({‘name’:sbalex}) 数据安全的问题 加锁 进程池 ***** Map:异步提交任务,参数是可迭代对象,自带close + join Apply :同步提交任务, 阅读全文
posted @ 2018-11-29 20:58 我是一名劍客 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 今日内容: 守护进程:主进程的代码运行结束,守护进程跟着结束 进程同步: 同步锁(互斥锁) ***** 重点 保证数据安全用的,但是将锁起来的那段代码的执行变成了同步\串行,牺牲了效率,保证了安全 L = Lock() L.acquire() 数据操作 L.release() 信号量 Semapho 阅读全文
posted @ 2018-11-28 20:03 我是一名劍客 阅读(228) 评论(0) 推荐(1) 编辑
摘要: 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。我们自 阅读全文
posted @ 2018-11-27 19:21 我是一名劍客 阅读(249) 评论(0) 推荐(0) 编辑
摘要: # import time# import os# from multiprocessing import Process## def func1():# time.sleep(3)# print('我是func1')## def func2():# time.sleep(3)# print('我是 阅读全文
posted @ 2018-11-27 17:38 我是一名劍客 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 一、操作系统 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。 一般而言,现代计算机系统是一个复杂的系统。 其一:如果每位应用程序员都必须掌握该系统所有的细节,那就不可能再编写代码了(严重影响了程序员的开发效率:全部掌握这些细节可能 阅读全文
posted @ 2018-11-27 15:11 我是一名劍客 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 一、socketserver 基于tcp协议下的socket只能和一个客户端通信,如果用socketserver可以实现和多个客户端通信。 他是在socket的基础上进行封装,也就是说底层还是调用的socket,在py2.7里面叫做SocketServer也就是大写了两个S,在py3里面就小写了。后 阅读全文
posted @ 2018-11-26 18:53 我是一名劍客 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 一、两种粘包: MTU简单解释: 超出缓冲区大小会报下面的错误,或者udp协议的时候,你的一个数据包的大小超过了你一次recv能接受的大小,也会报下面的错误,tcp不会,但是超出缓存区大小的时候,肯定会报这个错误。 subprocess import subprocess cmd = input(' 阅读全文
posted @ 2018-11-23 16:09 我是一名劍客 阅读(208) 评论(0) 推荐(0) 编辑