解决产生死锁:使用递归锁,t1,t2的锁声明改为 threading.RLock() 同步条件:Event 信号量:Semaphore 用来控制线程并发数,当同时并发的线程达到指定的最大数时,其他线程将会被阻塞 BoundedSemaphore或Semaphore内置一个计数器,当acquire() Read More
进程:程序执行产生 每个进程都有自己的地址空间,内存,数据栈,以及用于跟踪执行的辅助数据 程序执行可能产生多个进程, 线程:在进程内执行,相当于一个迷你进程,同一进程下的多个线程共享信息,一个进程下必有一个主线程,线程是CPU的执行单位 Python下开线程:threading模块 threadin Read More
程序文件结构 具体代码实现 服务端: 执行文件bin/ftb_server 配置文件conf/setting 主程序文件core/main 服务端程序core/server 客户端: 主程序ftb_client Read More
使用socketserver模块实现多线程或多进程并发 使用ThreadingUDPServer时handle的self.request的内容是(data,self.socket),因为udp协议是不需要建立链接的 Read More
IP地址:以·分隔成4部分,每部分在底层是以8位二进制存储 例:172.16.45.10/16(后面是子网掩码,表示网络地址是前面16位二进制) 网路地址:172.16.00 主机地址:172.16.45.10(本身) IP地址分为5类 常用的是A类,B类,C类 A类:范围1.0.0.0 — 126 Read More
磁盘分区:先在虚拟机设置里添加一个新硬盘 查看现在电脑上有几个硬盘:ls /dev/硬盘名 分区命令:fdisk /dev/硬盘名 进入之后,可以输入 m 查看命令的具体是使用 新建分区:n→p(选择建立主分区,只能建4个,e为建拓展分区) 分区工具fdisk用法介绍 fdisk命令参数介绍 p、打 Read More
粘包现象:只有tcp协议才会产生粘包,udp协议不会产生粘包 1、tcp协议下,发送端会采用一个优化算法(Nagle算法),把间隔时间短,数据比较小的包合并到一起,再一起发送过去,造成粘包 2、发送端从缓存区拿数据,但数据过大,只拿取一部分数据,下次再接收时,再把没有接收的数据再拿取过来,造成粘包 Read More
socket:是在应用层和传输层之间的一个抽象层,它把TCP/IP层的复杂的操作封装抽象,并提供一些接口供应用层调用套接字:被设计用于同一台主机上多个应用程序之间的通信,被称为进程之间通信或IPC 基于文件类型的套接字:AF_UNIX UNIX一切皆文件,基于文件的套接字调用的就是底层文件系统来抓取 Read More
互联网的本本质就是一系列的网络协议 osi七层协议 也有称为tcp/ip五层或四层协议 五层是将会话层和表示层,应用层同归到应用层 每一层都有不同的设备进行工作 每一层都有着不同的协议 用户感知到的是最上一层的应用层,对于每一层来说,上层都是依赖于下层 物理层:基于电器之间的电信号,高电压为1,低电 Read More
异常:当程序发生错误是,抛出异常信息 Read More