几条在跑、几条在睡
场景:「算账」的线程里有的在跑、有的在睡。对照表列了八组「R:几,S:几」。 任务:数一数它的线程里有几条处于运行状态(R)、几条在睡(S),写成「R:几,S:几」到对照表里查对应的标记。⚠️ 有一条线程时忙时闲,多看几次,取稳定不变的那一
最忙的是哪条线程
场景:「算账」的线程里有一条在拼命占处理器。对照表按线程名配了标记。 任务:找出那条线程的名字,到对照表里查它对应的标记。⚠️ 主线程那一行的 %CPU 是整个进程的合计,别被它骗了——看状态列,或者看 /proc/PID/task/TID
第二忙的是谁
场景:「算账」的线程里有一条最忙、一条第二忙(大约四分之一时间在算),其余都闲着。对照表按线程名配了标记。 任务:找出第二忙的那条线程的名字,到对照表里查它对应的标记。⚠️ 主线程那一行是整个进程的合计。 可操作范围:只在分给你的这台实验机
累计用得最多的是谁
场景:「算账」的线程里,有一条现在还在算,有一条早已算完在睡。对照表按线程名配了标记。 任务:找出从启动到现在「累计用掉处理器时间最多」的那条线程,到对照表里查它对应的标记。⚠️ 此刻的 %CPU 和累计的 TIME 不是一回事。 可操作范
停掉那条忙线程,进程不能死
场景:「算账」的一条线程在拼命占处理器。这个程序有个开关:碰到 ~/ctl/<线程名>.stop 这个文件,那条线程就会自己退出(看 ~/工人.py 开头的用法)。 任务:只停掉那条忙线程,「算账」进程本身和它别的线程都要活着。
交一份分析报告
场景:实验机上有一个多线程进程「算账」。 任务:写一份 ~/报告.txt,正好三行:「线程数 N」(含主线程)、「运行中 R」(状态为 R 的线程条数,取稳定的值)、「最忙 线程名」(占处理器最多的那条,形如 算账-xx)。每行「项目 空格
交付:只留主线程
场景:「算账」有若干条工作线程。这个程序认 ~/ctl/<线程名>.stop 文件。 任务:把它的工作线程全部停掉,只留主线程;进程本身要活着。做好之后运行 ~/check。 可操作范围:只在分给你的这台实验机上操作。可以改家目
线程是怎么造出来的
一挥手,三条线各自跑开,自己也不停 Python 里造一条线程,最常见的写法是 threading.Thread(target=函数)。这一行做的事是【0】。
start 做了什么
t.start() 之后,那个函数在【0】。
开三条线程
一挥手,三条线各自跑开,自己也不停 要同时抓三个来源,正确的做法是【0】。