摘要:
之前已经了解了进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行 而这种执行的程序称为进程 程序和进程的区别在于:程序是指令的集合,它是进程运行的静态描述文本 为什么要有线程 进程有很多优点,它提供了多道编程,让我们感觉每个人都拥有自己的cpu和其他资源,可以提高计算机 阅读全文
摘要:
之前已经了解了进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行 而这种执行的程序称为进程 程序和进程的区别在于:程序是指令的集合,它是进程运行的静态描述文本 为什么要有线程 进程有很多优点,它提供了多道编程,让我们感觉每个人都拥有自己的cpu和其他资源,可以提高计算机 阅读全文
摘要:
进程: 正在进行的一个过程或者说一个任务 进程是计算机中资源分配的最小单位 多进程之间的数据是隔离的 多进程是用来解决高计算型的程序用的 启动进程的开销比较大,其开启数量和cpu的个数相关,正常在cpu的个数1-2倍之间 进程越多,操作系统调度起来越消耗资源,同一时间最多只能执行和cpu个数相等的进 阅读全文
摘要:
之后的进程池使用的是 ProcessPoolExecutor,它的底层使用的就是pool 为什么要有进程池?进程池的概念。 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千上万个任务需要被执行的时候, 我们就需要去创建成千上万个进程么?首先,创建进程需要消 阅读全文
摘要:
展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。 这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布式系统中。 但进程间应该尽量避免通信,即便需要通信,也应该选择进程安全的工具来避免加锁带来的问题。 以后我们 阅读全文
摘要:
#创建管道的类: Pipe([duplex]):在进程之间创建一条管道,并返回元组(conn1,conn2),其中conn1,conn2表示管道两端的连接对象,强调一点:必须在产生Process对象之前产生管道 #参数介绍: dumplex:默认管道是全双工的,如果将duplex射成False,co 阅读全文
摘要:
创建可连接的共享进程队列。这就像是一个Queue对象,但队列允许项目的使用者通知生产者项目已经被成功处理。 通知进程是使用共享的信号和条件变量来实现的。 from multiprocessing import Process,JoinableQueue,Queue import time,rando 阅读全文
摘要:
生成消费者模型 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费线程的工作能力来提高程序的整体处理数据的速度。 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者 阅读全文
摘要:
首先明白几个概念: 同步:做完一件事情,再做另外一件事情 异步:做一件事情的时候,可以再做另外一件事情 阻塞:recv sleep accept input recvfrom 非阻塞:没有遇见上面这些阻塞的情况就是非阻塞 阻塞与非阻塞这两个概念与程序等待消息通知(无所谓同步或者异步)时的状态有关, 阅读全文
摘要:
tcp三次握手: TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK[1],并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接。[1] TCP三次握手的过程如下: 客户端发送SYN(SEQ=x)报文给服务 阅读全文
摘要:
TCP:可靠的面向连接的协议,传输效率低,全双工通信,流数据传输。运用:web浏览器,电子邮件,文件传输程序 UDP:不可靠的,无连接的服务,传输效率高,面向数据包的传输,只能发短消息。运用:dns , 视频流 ,IP语音(VoIP) 根据MTU最大传输单元为1500(普遍),再减去报头,报尾,所以 阅读全文
|