交付:三个毛病一起修
场景:~/服务.py 跑起来:报告写的是「完成 0/4」,而且程序永远不退出。不止一处毛病。 任务:把它修好——报告要写「完成 4/4」,程序 10 秒内正常退出。修好后运行 ~/check。 可操作
互相等对方的两条线程
场景:~/握手.py 里两条线程互相打招呼,可程序一跑就挂住,永远不结束。 任务:找出两条线程为什么谁也等不到谁,修好握手.py:两条线程都握上手,程序正常退出,~/out/报告.txt 里有「甲握上
报告写在工人做完之前
场景:~/服务.py 跑完退出了,但 ~/out/报告.txt 里写的是「完成 0/4」——工人明明把活都干了。 任务:找出原因,修好服务.py,让报告写「完成 4/4」。修好后运行 ~/check。
心跳线程拖住了程序
场景:~/服务.py 的工人都做完了、报告也写了「完成 4/4」,可程序就是不退出——一直挂着。 任务:找出是哪条线程拖住了程序,修好服务.py:报告写完程序 10 秒内正常退出。修好后运行 ~/ch
工人做完了却不退出
场景:~/服务.py 的四个工人线程把任务都做完了,程序却一直不退出(跑一下试试,Ctrl-C 能停)。 任务:找出工人线程为什么不结束,修好服务.py:任务做完工人就该退出,程序 10 秒内正常结束
哪条在等一个不会来的信号
场景:~/服务.py 已经在后台跑起来了:两条工人线程一直没结束——一条在死循环空转,一条在等一个永远不会来的信号。对照表按线程名配了标记。 任务:找出「在等信号」的那条线程,到对照表里查它的名字对应
还剩几条线程活着
场景:~/服务.py 已经在后台跑起来了:四个工人线程 + 一条心跳线程 + 主线程。有的工人做完了,有的没有。对照表列了八个数。 任务:等它「该做完」之后(几秒就够),查出「服务」这个进程里现在还活
哪条线程没结束
场景:~/服务.py 已经在后台跑起来了(开头有说明):四个工人线程领任务,做完就该结束。可它一直不退出。对照表按线程名配了标记。 任务:查出是哪条工人线程一直没结束,到对照表里查它的名字(形如 服务
从线程表里认出卡住的
真机上 ps -L -o stat,comm 打出进程里每条线程的状态和名字。要在脚本里挑出「还活着的工人」,先在这里练: lines = ["Ssl 服务", "Ssl
程序为什么退不出
主线程的代码全部跑完了,程序却一直不退出。最常见的原因是【0】。