随笔分类 -  Python网络与并发

摘要:server client 阅读全文
posted @ 2018-09-10 23:29 一只小小的寄居蟹 阅读(606) 评论(0) 推荐(0) 编辑
摘要:概念术语 同步与异步: 同步就是当一个进程发起一个函数(任务)调用的时候,一直等到函数(任务)完成,而进程继续处于激活状态。 异步情况下是当一个进程发起一个函数(任务)调用的时候,不会等函数返回,而是继续往下执行,函数返回的时候通过状态、通知、事件等方式通知进程任务完成。 阻塞与非阻塞: IO模型介 阅读全文
posted @ 2018-08-21 23:09 一只小小的寄居蟹 阅读(348) 评论(0) 推荐(0) 编辑
摘要:死锁现象 所谓死锁: 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程,如下就是死锁 递归锁 解决方法,递归锁,在Python中为了支持在同一线程中多次 阅读全文
posted @ 2018-08-19 17:23 一只小小的寄居蟹 阅读(912) 评论(0) 推荐(1) 编辑
摘要:进程池与线程池 在刚开始学多进程或多线程时,我们迫不及待地基于多进程或多线程实现并发的套接字通信,然而这种实现方式的致命缺陷是:服务的开启的进程数或线程数都会随着并发的客户端数目地增多而增多, 这会对服务端主机带来巨大的压力,甚至于不堪重负而瘫痪,于是我们必须对服务端开启的进程数或线程数加以控制,让 阅读全文
posted @ 2018-08-18 22:32 一只小小的寄居蟹 阅读(3217) 评论(0) 推荐(0) 编辑
摘要:信号量 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行。 如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群路人争抢公共厕所,公共厕所有多个坑位,这意味着同一时间可以有多个人上公共厕所,但公共厕所容纳的人数是一 阅读全文
posted @ 2018-08-16 00:05 一只小小的寄居蟹 阅读(451) 评论(0) 推荐(0) 编辑
摘要:socketserver socketserver内部使用IO多路复用以及“多线程”和“多进程”,从而实现并发处理多个客户端请求的scoket服务端。即,每个客户端请求连接到服务器时,socket服务端都会在服务器是创建一个“线程”或“进程”专门负责处理当前客户端的所有请求。 ThradingTCP 阅读全文
posted @ 2018-08-12 14:15 一只小小的寄居蟹 阅读(1224) 评论(0) 推荐(0) 编辑
摘要:生产者消费者模型介绍 为什么要使用生产者消费者模型 生产者指的是生产数据的任务,消费者指的是处理数据的任务,在并发编程中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。 同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解 阅读全文
posted @ 2018-08-11 23:13 一只小小的寄居蟹 阅读(1438) 评论(0) 推荐(0) 编辑
摘要:互斥锁 进程之间数据隔离, 但是多个进程可以共享同一块数据,比如共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,如下 如何控制,就是加锁处理。而互斥锁的意思就是互相排斥,如果把多个进程比喻为多个人,互斥锁的工作原理就是多个人都要去争 阅读全文
posted @ 2018-08-11 19:24 一只小小的寄居蟹 阅读(2160) 评论(0) 推荐(0) 编辑
摘要:为什么要有操作系统 现代的计算机系统主要是由一个或者多个CPU,内存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。 一般而言,现代计算机系统是一个复杂的系统。 程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的 阅读全文
posted @ 2018-08-11 08:41 一只小小的寄居蟹 阅读(270) 评论(0) 推荐(0) 编辑
摘要:基础知识 FTP只通过TCP连接,FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。 通常21端口是命令端口,20端口是数据端口。当混入主动/被动模式的概念时,数据端口就有可能不是20了 FTP主动模式 在主动模式下,FTP客户端随机开启一个大于1024的端口 阅读全文
posted @ 2018-08-06 16:25 一只小小的寄居蟹 阅读(8517) 评论(0) 推荐(0) 编辑
摘要:FTP Server FTP Client common_util 阅读全文
posted @ 2018-07-30 23:15 一只小小的寄居蟹 阅读(1016) 评论(0) 推荐(0) 编辑
摘要:练习题 什么是C/S架构? 互联网协议是什么?分别介绍五层协议中每一层的功能? 基于tcp协议通信,为何建立链接需要三次握手,而断开链接却需要四次挥手 为何基于tcp协议的通信比基于udp协议的通信更可靠? ‍流式协议指的是什么协议,数据报协议指的是什么协议? 什么是socket?简述基于tcp协议 阅读全文
posted @ 2018-07-23 20:20 一只小小的寄居蟹 阅读(619) 评论(0) 推荐(0) 编辑
摘要:传输文件简单版 server端: client端 输出结果 传输文件优化版 server端: client端: 输出结果: 阅读全文
posted @ 2018-07-10 22:34 一只小小的寄居蟹 阅读(4762) 评论(1) 推荐(0) 编辑
摘要:UDP通信过程 udp 不需要经过3次握手和4次挥手,不需要提前建立连接,直接发数据就行。 server端 client端 输出结果 粘包分析 第一种: server client 服务端结果:没有产生粘包 第二种: 输出结果 TCP VS UDP tcp基于链接通信 基于链接,则需要listen( 阅读全文
posted @ 2018-07-08 07:36 一只小小的寄居蟹 阅读(31296) 评论(1) 推荐(1) 编辑
摘要:TCP与UDP协议 粘包现象 socket收发消息的原理 应用程序所看到的数据是一个整体,或说是一个流(stream),一条消息有多少字节对应用程序是不可见的,因此TCP协议是面向流的协议,这也是容易出现粘包问题的原因。 而UDP是面向消息的协议,每个UDP段都是一条消息,应用程序必须以消息为单位提 阅读全文
posted @ 2018-07-07 15:02 一只小小的寄居蟹 阅读(4397) 评论(1) 推荐(2) 编辑
摘要:简单的套接字通信 server client server输出 client1输出 client2输出 模拟ssh远程执行命令 sever端 client端 server输出 client输出 阅读全文
posted @ 2018-07-05 23:00 一只小小的寄居蟹 阅读(3123) 评论(0) 推荐(0) 编辑
摘要:什么是C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),C/S架构软件比如网络游戏。 计算机基础知识 作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调 阅读全文
posted @ 2018-07-05 21:22 一只小小的寄居蟹 阅读(297) 评论(0) 推荐(0) 编辑
摘要:线程 线程被称作轻量级进程。与进程类似,不过它们是在同一个进程下执行的。 并且它们会共享相同的上下文。每一个进程中至少有一个线程。 顾名思义,线程就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集 阅读全文
posted @ 2018-04-02 11:00 一只小小的寄居蟹 阅读(319) 评论(0) 推荐(0) 编辑
摘要:Python并发目录 Python-socket网络编程 Python网络编程-IO阻塞与非阻塞及多路复用 Python进程-理论 Python进程-实现 Python进程间通信 Python进程池 Python线程 Python协程 注意点 python编程中的if __name__ == 'ma 阅读全文
posted @ 2018-04-01 00:17 一只小小的寄居蟹 阅读(387) 评论(0) 推荐(0) 编辑
摘要:前言 问题:普通套接字实现的服务端的缺陷 一次只能服务一个客户端! accept阻塞! 在没有新的套接字来之前,不能处理已经建立连接的套接字的请求 recv 阻塞! 在没有接受到客户端请求数据之前,不能与其他客户端建立连接 IO阻塞与非阻塞 阻塞IO模型 阻塞IO(blocking IO)的特点:就 阅读全文
posted @ 2018-03-31 18:08 一只小小的寄居蟹 阅读(5863) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示