补全:都处理完没

补全 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):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐延迟、定位竞争。 共享

开始练习 →