摘要:
from multiprocessing import Process import time import os def task(): print('%s is running' %os.getpid()) time.sleep(3) print('%s is done' % os.getpid 阅读全文
摘要:
子进程的出现是为了实现并发 from multiprocessing import Process import time x=100 def task(): global x x=0 print('done') # 父进程在等待的时间内子进程执行完了,打印出“done” if __name__ = 阅读全文
摘要:
进程理论(book:现代操作系统) 为何开启子进程需要放在main下面:因为运行到start他会向操作系统发起启动子进程的信号,然后操作系统会把整个代码块执行下,找到子进程要执行的任务, 代码运行到最下面,又执行了start,又重复执行一次。线程可以不放在main下面是因为线程不用导入主线程里的东西 阅读全文
摘要:
1、多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题, 解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。 优点: 程序员在申请的时间段内独享整个资源,可以即时地调试自己的程序(有bug可以立刻处理) 缺点: 浪费计算机资源,一个时间段内只有一个人用。 阅读全文
摘要:
基于tcp协议 import socketserver # 导入socketserver模块 # socketsever 把并发进程的方法封装 class MyHandler(socketserver.BaseRequestHandler): # 定义一个类,继承父类BaseRequestHandl 阅读全文
摘要:
udp协议的套接字 udp协议传输 服务端和客户端没有建立连接一说。 import socket # 总结一下基础工作流程:服务端生成套接字并绑定ip_port,进入数据传输循环,服务端接受客户端发送的信息和地址, # 然后服务端对客户端请求做出响应,发送处理好的数据根据而客户端地址。 # 客户端建 阅读全文
摘要:
粘包产生的原因分析: 第一点:客户端向服务端发起命令请求,服务端接受命令请求,并返回对应的信息,如果信息过大,客户端一次接受不了,那么下一次请求依然返回 上一个命令的内容,就出现了粘包的情况。 第二点:发送端需要等缓冲区满才发送出去,造成粘包(发送数据时间间隔很短,数据了很小,会合到一起,产生粘包) 阅读全文
摘要:
1.socket(套接字) Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 2.套接字 阅读全文