Python 中多线程和多进程有什么区别?分别在什么场景下使用?# Python 多线程与多进程详解
## 线程与进程的基本概念
### 进程(Process)
进程是操作系统分配资源的基本单位,拥有独立的内存空间、文件句柄等系统资源。每个进程都有自己独立的地址空间,进程间通信需要特殊的机制(IPC)。
### 线程(Thread)
线程是 CPU 调度的基本单位,同一进程内的线程共享进程的内存空间和资源。线程间的通信相对简单,但需要处理同步问题。
## Python 中的多线程
### threading 模块
Python 的 `threading` 模块提供了线程相关的操作。
```python
import threading
...
服务端 · 2月17日 20:40
TCP 流量控制的滑动窗口机制是如何工作的?# TCP 流量控制机制详解
TCP 流量控制是防止发送方发送速度过快导致接收方缓冲区溢出的关键机制。
## 滑动窗口机制
### 窗口大小
- **接收窗口(rwnd)**:接收方通告的可用缓冲区大小
- **拥塞窗口(cwnd)**:发送方根据网络状况计算的窗口大小
- **实际发送窗口**:min(rwnd, cwnd),即取两者中的较小值
### 工作原理
1. **接收方通告**:在 TCP 报文段的窗口字段中通告当前可用的接收窗口大小
2. **发送方调整**:发送方根据接收方的窗口大小调整发送速率
3. **零窗口**:当接收方缓冲区满时,通告窗口大小为 0
4...
计算机基础 · 2月19日 14:42
TCP 拥塞控制的四个算法是什么?# TCP 拥塞控制机制详解
TCP 拥塞控制是网络稳定性的关键机制,防止网络拥塞导致的数据包丢失和性能下降。
## 拥塞控制的四个核心算法
### 1. 慢启动(Slow Start)
- **初始状态**:cwnd(拥塞窗口)初始化为 1 个 MSS(最大报文段大小)
- **指数增长**:每收到一个 ACK,cwnd 加倍,每经过一个 RTT,cwnd 翻倍
- **阈值触发**:当 cwnd 达到 ssthresh(慢启动阈值)时,进入拥塞避免阶段
- **目的**:快速探测网络可用带宽,避免一开始就发送大量数据导致拥塞
### 2. 拥塞避免(Congestion A...
计算机基础 · 2月19日 14:42
TCP 四次挥手的过程和原理是什么?# TCP 四次挥手详解
TCP 四次挥手是终止连接的过程,确保双方都能安全地关闭连接并释放资源。
## 挥手过程
1. **第一次挥手(FIN)**:客户端发送 FIN=1、seq=u 的报文段,进入 FIN_WAIT_1 状态,表示客户端没有数据要发送了
2. **第二次挥手(ACK)**:服务器收到 FIN 后,发送 ACK=1、seq=v、ack=u+1 的报文段,进入 CLOSE_WAIT 状态,客户端收到后进入 FIN_WAIT_2 状态
3. **第三次挥手(FIN)**:服务器发送 FIN=1、ACK=1、seq=w、ack=u+1 的报文段,进入 LAST_ACK...
计算机基础 · 2月19日 14:42
TCP 可靠传输的保障机制有哪些?# TCP 可靠传输机制详解
TCP 可靠传输是 TCP 协议的核心特性,确保数据在不可靠的网络环境中能够正确、有序、无丢失地传输。
## 可靠传输的保障机制
### 1. 序列号和确认应答
- **序列号(Sequence Number)**:每个字节都有唯一的序列号,标识数据在流中的位置
- **确认应答(ACK)**:接收方收到数据后发送 ACK,确认已收到的数据
- **累积确认**:ACK 号码表示期望收到的下一个字节序列号
- **作用**:确保数据按序到达,检测丢失的数据包
### 2. 重传机制
#### 超时重传(RTO)
- **RTO 计算**:基于 ...
计算机基础 · 2月19日 14:43
TCP 和 UDP 的主要区别是什么?# TCP 与 UDP 的区别详解
TCP 和 UDP 是传输层最主要的两个协议,它们在设计理念和适用场景上有显著差异。
## 核心区别
### 1. 连接性
- **TCP**:面向连接,需要三次握手建立连接,四次挥手断开连接
- **UDP**:无连接,直接发送数据,不需要建立连接
### 2. 可靠性
- **TCP**:可靠传输,提供确认应答、重传、校验和等机制
- **UDP**:不可靠传输,不保证数据到达,可能丢包、乱序
### 3. 有序性
- **TCP**:保证数据按序到达,通过序列号和确认应答实现
- **UDP**:不保证顺序,数据包可能乱序到达
...
计算机基础 · 2月19日 14:43
TCP TIME_WAIT 状态的作用和问题是什么?# TCP TIME_WAIT 状态详解
TIME_WAIT 是 TCP 连接关闭过程中的一个重要状态,对网络稳定性和连接复用有重要影响。
## TIME_WAIT 状态概述
### 状态定义
- **出现时机**:主动关闭方在发送第四次挥手(ACK)后进入 TIME_WAIT 状态
- **持续时间**:2MSL(Maximum Segment Lifetime,最大报文生存时间)
- **MSL 定义**:报文在网络中能够存在的最长时间,通常为 30 秒到 2 分钟
### 状态转换
```
ESTABLISHED → FIN_WAIT_1 → FIN_WAIT_2 → ...
计算机基础 · 2月19日 14:45
TCP SYN Flood 攻击的原理和防御方法是什么?# TCP SYN Flood 攻击及防御详解
SYN Flood 是一种常见的 DDoS 攻击方式,利用 TCP 三次握手的漏洞,耗尽服务器资源,导致服务不可用。
## SYN Flood 攻击原理
### 攻击过程
1. **发送大量 SYN 包**:攻击者向服务器发送大量 TCP SYN 报文段
2. **伪造源 IP**:使用伪造的或随机的源 IP 地址
3. **服务器响应**:服务器收到 SYN 后,发送 SYN+ACK,并进入 SYN_RCVD 状态
4. **等待 ACK**:服务器等待第三次握手(ACK),但由于源 IP 是伪造的,永远不会收到 ACK
5. *...
计算机基础 · 2月19日 14:44
VR 应用中如何解决晕动症问题?# VR 应用中的晕动症问题及解决方案
晕动症(Motion Sickness)是 VR 应用中最常见也是最具挑战性的问题之一。它不仅严重影响用户体验,还可能导致用户对 VR 技术产生负面印象。了解晕动症的成因、预防和缓解方法,对于开发高质量的 VR 应用至关重要。
## 晕动症的成因
### 1. 感觉冲突理论
**视觉-前庭冲突**:
- 视觉系统感知到的运动与前庭系统(内耳平衡器官)感知到的运动不一致
- 例如:视觉上看到自己在移动,但身体实际上是静止的
- 这种冲突会触发大脑的防御机制,导致恶心、头晕等症状
**视觉-本体感觉冲突**:
- 视觉感知的运动与身体本体感觉...
前端 · 2月21日 16:49
