随笔分类 -  网络编程与并发编程

摘要:主要内容: 1. yeild 实现状态保存 2 . yield 实现并发的假象 在单线程中, 如果存在多个函数, 如果某个函数存在i/o操作, 想让程序马上切换到另一个函数去执行,以此实现一个假的并发现象. 总结 : yield 只能实现单纯的切换函数和保存函数状态的功能 不能实现: 当某一个函数遇 阅读全文
posted @ 2018-08-28 20:55 ...绿茵 阅读(158) 评论(0) 推荐(0)
摘要:主要内容 1 . 队列 2 . 线程池 a : 定义 : 在一个池子里,放固定数量的线程,这些线程等待任务,一旦有任务来,就有线程自发的去执行任务。 b : concurrent.futures 这个模块是异步调用的机制, concurrent.futures 提交任务都是用submit c : s 阅读全文
posted @ 2018-08-27 19:38 ...绿茵 阅读(200) 评论(0) 推荐(0)
摘要:主要内容 : 1 . 线程 a : 线程的概念 1 ) 线程由 代码段, 数据段, tcb(thread control block)组成(进程由 代码段, 数据段, pcb(process control block)组成) 2 ) 进程被称为轻量级的进程. GIL(全局解释锁)只有cpython 阅读全文
posted @ 2018-08-23 21:56 ...绿茵 阅读(305) 评论(0) 推荐(0)
摘要:主要内容 进程之间能不能直接通信? 正常情况下, 多进程之间是无法直接进行通信的. 因为每个进程都有自己独立的内存空间. 1 . 生产者消费者模型 a : 主要作用 : 为了解耦 借助队列来实现生产者消费者模型(是安全的) 栈 : 先进后出(First In last Out) 简称 : FILO 阅读全文
posted @ 2018-08-22 18:03 ...绿茵 阅读(201) 评论(0) 推荐(0)
摘要:主要内容 : 1 . 锁机制 : 一把钥匙配一把锁 实例化一个钥匙对象 : l = lock() 拿钥匙 : l.acquire() 取钥匙 : l.release() 事例一 : 存钱取钱问题 注意 :既然加锁会让运行变成串行,那么我在start之后立即使用join,就不用加锁了啊,也是串行的效果 阅读全文
posted @ 2018-08-21 18:06 ...绿茵 阅读(435) 评论(0) 推荐(0)
摘要:主要内容: 1 名词解释 并行 : 即两件事情或多件事情,在同一时间点同时执行.是从微观上,也就是在一个精确的时间片刻有不同的程序在执行,这就要求必须有多个处理器 并发 : 即两件事情或多件事情在同一时间段交替进行. 是从宏观上,在一个时间段上可以看出是同时执行的,比如一个服务器同时处理多个sess 阅读全文
posted @ 2018-08-20 18:02 ...绿茵 阅读(175) 评论(0) 推荐(0)
摘要:1 . 软件开发的架构 我们所涉及的两个程序之间的通讯大致可以分为两种: 第一种应用类 , qq, 微信, 网盘, 优酷这一类是属于需要安装的桌面应用. 第二种web类 : 百度, 知乎 , 博客园, 等使用浏览器访问就可以直接使用的应用. 这些应用的本质其实就是两个程序之间的通讯, 而这两个分类又 阅读全文
posted @ 2018-08-17 21:59 ...绿茵 阅读(153) 评论(0) 推荐(0)
摘要:主要内容: 1. 计算机的硬件组成 a : 主板 : 主板是一块集成电路板, 设备通过主板连接, 主板相当于人的躯体 b : cpu : 中央处理器, 用来进行计算和控制计算机, 安插在主板上, cpu相当于人的大脑. c : 内存 : 用来存储数据 d : 输入设备 : 键盘, 鼠标, 话筒. e 阅读全文
posted @ 2018-08-17 16:20 ...绿茵 阅读(411) 评论(0) 推荐(0)
摘要:主要内容: 1 . socketserver 模块 : a : 是出于socket抽象层与应用层之间的一层, 比socket更贴近用户. b : 主要解决问题 : tcp协议中, 服务器不能同时连接多个客户端的问题 服务器端: 客户端: 注意 :也存在一个问题 : 虽然服务器可以同时接收多个客户端发 阅读全文
posted @ 2018-08-16 19:10 ...绿茵 阅读(163) 评论(0) 推荐(0)
摘要:主要内容 : 1 . struct 模块 : 可以把一种数据类型, 如数字,转换成固定长度的bytes. -2147483648 2147483648 4bytes 2 . 大文件的传输 a: 版本一 : 解决黏包问题的大文件传输 服务器端代码 : 客户端代码: b : 版本二: 大文件的传输: 服 阅读全文
posted @ 2018-08-16 17:03 ...绿茵 阅读(175) 评论(0) 推荐(0)
摘要:主要内容: 1. 执行命令 : 在python中去调用操作系统的命令 引入新的模块 : subprocess 用subprocess实现,客户端发送要执行的命令, 服务器执行,执行完结果返回客户端, 客户端拿到结果后呈现在用户眼前. 服务器端的代码: 客户端的代码: 2. 黏包问题 :在发送端发送数 阅读全文
posted @ 2018-08-14 16:40 ...绿茵 阅读(123) 评论(0) 推荐(0)
摘要:主要内容: 发送端一次性发送的数据,从发送端的缓存区发送给接收方的操作系统中(即缓存区), 接收方直接要数据从自己的操作系统中,不会接收一次(在没有接收完的情况下)就像发送方要一次.从而提高了网络传输的效率. 1. tcp协议及编码 a : 回环地址 : 127.0.0.1 每个计算机都有这个回环地 阅读全文
posted @ 2018-08-13 18:09 ...绿茵 阅读(331) 评论(0) 推荐(0)
摘要:主要内容: 1 . 网络基础相关的知识 a : 架构 @C/S架构 : client 客户端和 server服务器端 优势 : 能充分发挥pc机的性能 @B/S架构 : browser浏览器 和server 服务器 隶属于C/S架构 优势 : 统一了应用的接口 b : 通信的知识 @ 同一个电脑上两 阅读全文
posted @ 2018-08-10 22:03 ...绿茵 阅读(319) 评论(0) 推荐(0)

1