补全:都处理完没
补全 all_served:完成数够不够请求数。 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐延迟、定位竞争
补全:还空几个 worker
补全 idle_workers:worker 数减去正忙的。 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐延
共享计数为什么要加锁
两个计数格:左没锁、右有锁 没锁的互相覆盖只涨一点,有锁的一支支加满 多个线程同时给一个共享计数自增,不加锁会【0】。 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器
锁到底保证了什么
两个计数格:左没锁、右有锁 没锁的互相覆盖只涨一点,有锁的一支支加满 给自增加上锁,保证的是【0】。 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、
加锁的代价是什么
加锁护共享状态,代价是【0】。 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐延迟、定位竞争。 共享状态:th
加锁后总共加了几次
按模型,4 个线程各加 1 次,safe_total(4, 1) 交回几? 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、
无锁最坏丢了几次
按模型,4 个线程各加 1 次,lost(4, 1) 交回几? 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐
补全:加锁后的总数
补全 safe_total:加锁一次不丢,共 threads*per。 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测
补全:无锁最坏值
补全 racy_total:无锁最坏只剩一个线程的 per 次。 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞
补全:丢了多少更新
补全 lost:加锁总数减去无锁最坏值。 贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐延迟、定位竞争。 共享