上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页
摘要: 生产者消费者模型 模型就是解决某个问题的固定方法或者套路。在并发编程中使用生产者和消费者模型能够解决绝大多数并发问题。该模式通过平衡生产进程和消费进程的工作能力来提高程序的整体处理数据的速度 要解决什么问题 生产者:就是生产数据的一方 消费者:就是处理数据的一方 在多线程开发当中,如果生产者处理速度 阅读全文
posted @ 2019-07-04 21:11 Never&say&die 阅读(162) 评论(0) 推荐(1) 编辑
摘要: 进程安全问题 1.当并发的多个任务要同时操作同一个资源,就会造成数据错乱的问题。 多个进程共享同一打印终端 多个进程共享同一文件,模拟抢票 2.解决方法:将并发操作公共资源的代码,由并发变为串行,解决安全问题,但是牺牲了效率 串行方式1:直接使用join()函数 缺点:将任务中的所有代码全都串行,此 阅读全文
posted @ 2019-07-03 21:17 Never&say&die 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 守护进程 守护进程会在主进程代码执行结束后和主进程一起终止 守护进程内无法再开启子进程,否则抛出异常:AssertionError: daemonic processes are not allowed to have children 阅读全文
posted @ 2019-07-03 15:55 Never&say&die 阅读(169) 评论(0) 推荐(0) 编辑
摘要: [TOC] 并发编程 串行、并发和并行 串行:程序自上而下的顺序执行,必须把当前任务执行完毕才能执行下一个任务,无论当前任务需要多长时间 并发:多个任务同时执行。但是本质上是不同进程间的切换执行,由于切换速度非常快所以感觉是同时运行。学习并发的目的就是编写可以同时执行多个任务的程序,来提高效率 并行 阅读全文
posted @ 2019-07-02 21:41 Never&say&die 阅读(147) 评论(0) 推荐(0) 编辑
摘要: [TOC] 操作系统简介 操作系统位于应用软件和硬件设备之间,为方便用户操作计算机而提供的一个运行在硬件之上的软件 操作系统的两个核心作用 隐藏了硬件系统复杂的操作,提供了简单直观的API接口 将对硬件资源的竞争变成有序可控 操作系统与应用程序的区别 操作系统与应用程序都是软件,而操作系统可以看做一 阅读全文
posted @ 2019-07-02 19:44 Never&say&die 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 基于socketserver实现并发的socket套接字编程 并发:让服务端同时和多个客户端进行连接。使用socketserver的连接循环(并发),但是使用了自己的通信循环 服务端 客户端1 客户端2 阅读全文
posted @ 2019-06-27 20:04 Never&say&die 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 基于UDP的socket套接字编程 UDP协议是无连接的,所以不会有粘包问题 服务端 客户端 阅读全文
posted @ 2019-06-27 19:10 Never&say&die 阅读(112) 评论(0) 推荐(0) 编辑
摘要: [TOC] 粘包问题 只有TCP有粘包现象,UDP永远不会粘包 socket收发消息的原理 在TCP协议中,如服务端向客户端传输数据:发送端是两K两K的发送数据,接收端是一K一K的发送数据,发送端将多余的的数据放在缓存中,接收端在取的时候会取到两条数据的部分。造成粘包问题 在UDP协议中,服务端向客 阅读全文
posted @ 2019-06-27 18:47 Never&say&die 阅读(172) 评论(0) 推荐(0) 编辑
摘要: [TOC] 模拟ssh远程执行命令 实现在客户端输入执行命令后,返回执行命令的信息。如输入dir,显示当前目录下的所有文件和文件夹 服务器 客户端 阅读全文
posted @ 2019-06-26 19:13 Never&say&die 阅读(156) 评论(0) 推荐(0) 编辑
摘要: [TOC] 基于TCP协议的套接字编程 套接字 套接字有两种,分别是基于文件型和基于网络型 基于文件类型的套接字家族:AF_UNIX,unix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在同一机器,可以通过访问同一文件系统间接完成通信 基于网络类型的套接字家族:A 阅读全文
posted @ 2019-06-26 17:41 Never&say&die 阅读(139) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页