摘要:
********线程池******** Python标准模块--Concurrent.futures 1.介绍 Concurrent.futures模块提供了高度封装的异步调用接口 ThreadPoolExecutor:线程池,提供异步调用 ProcessPoolExecutor:进程池,提供异步调用 Both implement the same interface, which i... 阅读全文
摘要:
网络编程+并发编程 架构:B/S 和 C/S C/S:充分发挥PC机的性能 B/S:统一了应用的接口,隶属于CS架构 OSI模型 七层:表示层,会话层,应用层,传输层,网络层,数据链路层,物理层。 我们用五层 应用层 http协议 https协议 ftp协议 snmp/pop3/stmp/dns 传输层 tcp udp 协议 (四层交换机) 网络层 IP协议/icmp... 阅读全文
摘要:
*********线程和python******** ******理论知识****** ****全局解释器锁(GIL)**** Python代码的执行由Python虚拟机(也叫解释器主循环)来控制。Python在设计之初就考虑到要在主循环中, 同时只有一个线程在执行。虽然Python解释器中可以“运行”多个线程,但在任意时刻只有一个线程在解释器中运行。 对Python虚拟机的访问由全局解... 阅读全文
摘要:
********线程理论******** *****线程概念的引入背景**** **进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为 它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合, 它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许 多个程序同时加载到内存中... 阅读全文
摘要:
********生产者消费者模型******** 在并发编程中使用生产者和消费者模式能够解决绝大多数并发问题。该模式通过平衡生产线程和消费 线程的工作能力来提高程序的整体处理数据的速度。 为什么要使用生产者和消费者模式 在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果 生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能... 阅读全文
摘要:
********进程池******** ****进程池**** 为什么要有进程池? 答: 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。那么在成千 万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗时间,销毁 程也需要消耗时间。第二即便开启了成千上万的进程,操作系统也不能让他们同时执行,这样反而会影响 序的效率。因此我们不... 阅读全文
摘要:
********进程之间的数据共享********(了解) 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合,通过消息队列交换数据。 这样极大地减少了对使用锁定和其他同步手段的需求,还可以扩展到分布式系统中。 但进程间应该尽量避免通信,即便需要通信,也应该选择进程安全的工具来避免加锁带来的问题。 以后尝试使用数据库来解决现在进程之间... 阅读全文
摘要:
********进程间通信-队列和管道******** ****进程间通信-队列和管道 IPC(Inter-Process Communication) ****队列 **概念介绍 创建贡献的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。 Queue([maxsize]) 创建共享的进程队列。 参数 :maxsize是队列中允许的最大项数。如果省... 阅读全文
摘要:
#之所以会这样,是因为电脑执行太快了,做的快消费的也快,如果做的快消费的慢,那么将不会消费!这与计算机执行快慢有关系。 阅读全文
摘要:
********进程同步控制******** ****锁--multiprocessing.Lock**** 通过学习,我么实现了程序的异步,让多个任务可以同时在几个进程中处理,他们之间的运行没有顺序,一旦 开启不受我们控制。尽管并发编程让我们能更加充分的利用IO资源,但是也给我们带来了新的问题 当多个进程使用同一份数据资源的时候,就会引发数据安全或顺序混乱问题。 **多进程抢占资源... 阅读全文