十个来六个容量拒几个
按模型,来 10 个、容量 6,rejected(10, 6) 交回几?
贯穿本节的并发模型(判题机 0.25 核有 GIL、答案不靠时序,这是它的确定模型,见 spine.py):高并发服务器搭起来后要选架构、加锁护状态、连接池/队列、压测、测吞吐延迟、定位竞争。
连接池/队列:accepted(pending, cap)=收下几个、rejected=拒了几个、queue_after(到, 处理)=队列还排几个、utilization(忙, 大小)=占用率。
def accepted(pending, capacity):
"""池子容量有限,这一批能收下几个。"""
return min(pending, capacity)
def rejected(pending, capacity):
"""收不下、被拒的有几个。"""
return max(0, pending - capacity)
def queue_after(arrived, served):
"""来了 arrived、处理掉 served 后,队列里还排着几个。"""
return max(0, arrived - served)
def utilization(busy, size):
"""池子占用率(百分比整数)。"""
return busy * 100 // size
print(rejected(10, 6))
全部评论