随笔分类 -  网络编程

IO模型
摘要:基于协程的TCP程序 from gevent import monkey, spawn monkey.patch_all() import socket server = socket.socket() server.bind(('127.0.0.1', 8888)) server.listen() 阅读全文
posted @ 2019-03-12 18:51 HeiTangMuSi 阅读(186) 评论(0) 推荐(0)
协程
摘要:直接使用线程或者进程发起异步 from multiprocessing import Process from threading import Thread import time def task(): time.sleep(2) print('run...') # 线程 # p = Threa 阅读全文
posted @ 2019-03-11 18:28 HeiTangMuSi 阅读(155) 评论(0) 推荐(0)
GIL 线程池 进程池 同步 异步 阻塞 非阻塞
摘要:1.GIL 是一个全局解释器锁,是一种互斥锁 为什么需要GIL锁:因为一个python.exe进程中只有一份解释器,如果这个进程开启了多个线程都要执行代码 多线程之间要竞争解释器,一旦竞争就有可能出现问题 带来的问题:同一时间只有一个线程可以访问解释器 好处:保证了多线程的数据安全 thread_s 阅读全文
posted @ 2019-03-08 16:41 HeiTangMuSi 阅读(423) 评论(0) 推荐(0)
线程
摘要:JoinableQueue的使用 from multiprocessing import JoinableQueue, Queue q = JoinableQueue() q.put(1) q.put(2) print(q.get()) q.task_done() # 告诉容器已经处理完了一个数据 阅读全文
posted @ 2019-03-07 15:50 HeiTangMuSi 阅读(232) 评论(0) 推荐(0)
守护进程进程安全
摘要:1.守护进程 指的也是一个进程,可以守护着另一个进程 一个进程a设置为b的守护进程 当b结束时 a会立马结束自己不管任务是否执行完毕 使用场景:例如qq进程 有一个下载任务 交给了一个子进程 但是过程中 qq退出了 下载进程也会随之关闭了 import time from multiprocessi 阅读全文
posted @ 2019-03-06 18:50 HeiTangMuSi 阅读(794) 评论(0) 推荐(0)
并发
摘要:并发编程多进程 1.进程与程序 进程:一个正常运行中的程序 是一系列程序执行的过程的总称(抽象概念) 程序:是有程序员将自己的思维逻辑按照某种编程语言规范编写下来的一堆字符串,最终形成的一堆文件 进程是由程序产生的,没有进程就没有进程 2.操作系统与进程 应用程序无法直接运行在硬件之上,一定要借助操 阅读全文
posted @ 2019-03-05 17:17 HeiTangMuSi 阅读(174) 评论(0) 推荐(0)
UDP
摘要:网路编程的目的就是要开发出一个基于CS结构的应用程序 服务器:存在着需要共享的数据,以及运行有共享数据的应用程序的计算机就称为服务器 客户端:运行有用接收共享数据的应用程序的计算机,就称之为客户端 要通讯 1.必须有物理连接介质 2.通讯协议 通讯协议: osi 七层模型 应表会传网数物七层 应用层 阅读全文
posted @ 2019-03-04 15:21 HeiTangMuSi 阅读(153) 评论(0) 推荐(0)
TCP的粘包问题
摘要:什么是粘包 粘包指的是数据与数据之间没有明确的分界线,导致不能正确读取 应用程序无法直接操作硬件,应用程序想要发送数据则必须将数据交给操作系统,而操作系统需要同时为所有应用程序提供数据传输服务,也就意味着,操作系统不可能立马就能将应用程序的数据发送出去,就需要为应用程序提供一个缓冲区,用于临时存放数 阅读全文
posted @ 2019-03-04 14:43 HeiTangMuSi 阅读(173) 评论(0) 推荐(0)
网络通讯协议
摘要:网络通讯的基本要素 物理介质 通讯协议 物理层规定物理介质的相关规范 比如网线接口是什么样的 有几根线 问题:无法理解单纯的二进制数据 数据链路层 工作在这一层的是以太网 规定一组电信号有多少位 每一组电信号包含什么样的内容 每一台电脑必须拥有一个全球唯一的mac地址(可以有多个) 通过广播的方式来 阅读全文
posted @ 2019-02-28 19:43 HeiTangMuSi 阅读(430) 评论(0) 推荐(0)