![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
七海霸主
这个作者很懒,什么都没留下…
展开
-
什么是死锁
若干子线程在系统竞争时,都在等待对方对某部分资源解除占用状态,结果是谁也不愿意先解锁,互相干等着,程序无法执行下去 这就是死锁 GIL锁解释器锁 作用 :限制多线程同时执行,保证同一时间只有一个线程执行,所以cpython里的多线程其实是伪线程 所以python 里常常使用协程技术来代替多线程,协程是一种更轻量级的线程, 进程和线程的切换时由系统决定,而协程由我们程序员自己决定,而模块gevent...原创 2019-03-19 09:15:46 · 126 阅读 · 0 评论 -
什么是线程安全。什么是互斥锁
每个对象都对应一个可称为 互斥锁的标记 这个标记用来保证来任一时刻,只有一个线程访问该对象 同一个进程中的多线程之间是共享系统资源的,多个线程同时对一个对象进行操作,一个线程操作尚未结束,另一个线程已经对其进行操作,导致最终结果出现错误,此时需要对被操作对象添加互斥锁,保证每个线程对该对象的操作都得到正确的结果 ...原创 2019-03-19 09:23:54 · 1441 阅读 · 0 评论 -
python 中进程和线程 的使用场景?
多进程适合在cpu 密集型操作(cpu 操作指令比较多,如位数多的浮点运算) 多线程适合在 IO密集型操作(读写数据操作比较多的,比如爬虫) 线程是并发 ,进程是并行 进程之间互相独立, 是系统分配资源的最小单位 同一个进程中的所有线程共享资源 并行 : 同一时刻多个任务同时在运行加粗样式 并发: 在同一时间间隔内 多个任务都在运行,但是并不会在同一时刻同时运行,存在交替执行的情况 程序需要较多的...原创 2019-03-19 09:47:28 · 827 阅读 · 0 评论 -
udp 和 tcp
使用udp 发送和接收数据步骤: 1.创建客户端套接字 2.发送/接收数据 3.关闭套接字 UDP 绑定端口号: 1.创建 socket 套接字 2.绑定端口号 3.接收/发送数据 4.关闭套接字 TCP 客户端的创建流程: 1.创建 TCP 的 socket 套接字 2.bing 绑定 ip 地址和端口号 3.listen 使套接字变为被动套接字 4.accept 取出一个客户端连接,用于服务...原创 2019-03-19 09:56:05 · 149 阅读 · 0 评论 -
简述 TCP和 UDP 的区别 以及优缺点
UDP 是面向无连接的通讯协议,UDP 数据包括目的端口号和源端口好信息。 优点 : udp 速度快 ,操作简单 要求系统资源较少,由于通讯不需要连接,可以实现广播发送 缺点: udp 传送 数据前并不与对方建立连接,对接收的数据也不发送确认信号,发送端也不知道数据是否会正确接收,也不会重复发送 ,不可靠 tcp :是面向接收的通讯协议,通过三次握手建立连接,通讯完成四次挥手 优点; tcp 在数...原创 2019-03-19 10:09:22 · 1147 阅读 · 0 评论