摘要:
生产者消费者模型 模型就是解决某个问题的固定方法或者套路。在并发编程中使用生产者和消费者模型能够解决绝大多数并发问题。该模式通过平衡生产进程和消费进程的工作能力来提高程序的整体处理数据的速度 要解决什么问题 生产者:就是生产数据的一方 消费者:就是处理数据的一方 在多线程开发当中,如果生产者处理速度 阅读全文
摘要:
进程安全问题 1.当并发的多个任务要同时操作同一个资源,就会造成数据错乱的问题。 多个进程共享同一打印终端 多个进程共享同一文件,模拟抢票 2.解决方法:将并发操作公共资源的代码,由并发变为串行,解决安全问题,但是牺牲了效率 串行方式1:直接使用join()函数 缺点:将任务中的所有代码全都串行,此 阅读全文
摘要:
守护进程 守护进程会在主进程代码执行结束后和主进程一起终止 守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children 阅读全文
摘要:
[TOC] 并发编程 串行、并发和并行 串行:程序自上而下的顺序执行,必须把当前任务执行完毕才能执行下一个任务,无论当前任务需要多长时间 并发:多个任务同时执行。但是本质上是不同进程间的切换执行,由于切换速度非常快所以感觉是同时运行。学习并发的目的就是编写可以同时执行多个任务的程序,来提高效率 并行 阅读全文
摘要:
[TOC] 操作系统简介 操作系统位于应用软件和硬件设备之间,为方便用户操作计算机而提供的一个运行在硬件之上的软件 操作系统的两个核心作用 隐藏了硬件系统复杂的操作,提供了简单直观的API接口 将对硬件资源的竞争变成有序可控 操作系统与应用程序的区别 操作系统与应用程序都是软件,而操作系统可以看做一 阅读全文
摘要:
基于socketserver实现并发的socket套接字编程 并发:让服务端同时和多个客户端进行连接。使用socketserver的连接循环(并发),但是使用了自己的通信循环 服务端 客户端1 客户端2 阅读全文
摘要:
基于UDP的socket套接字编程 UDP协议是无连接的,所以不会有粘包问题 服务端 客户端 阅读全文
摘要:
[TOC] 粘包问题 只有TCP有粘包现象,UDP永远不会粘包 socket收发消息的原理 在TCP协议中,如服务端向客户端传输数据:发送端是两K两K的发送数据,接收端是一K一K的发送数据,发送端将多余的的数据放在缓存中,接收端在取的时候会取到两条数据的部分。造成粘包问题 在UDP协议中,服务端向客 阅读全文