Skip to content

Commit 7ee0976

Browse files
Update p3-labs.md
1 parent bb1de17 commit 7ee0976

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

lec11/p3-labs.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -458,10 +458,12 @@ unsafe fn switch(old: *mut TaskContext, new: *const TaskContext) {
458458
---
459459

460460
##### 用户态管理的线程执行&调度
461+
462+
- 主线程(通常是 main 函数)初始化完运行时和所有用户线程后,最后调用 run(),将控制权交给调度器,由它不断切换线程执行。当所有用户线程都执行完毕并退出后,run() 返回,程序可以安全结束。
461463

462464
```rust
463465
pub fn run(&mut self){
464-
while self.t_yield() {}
466+
while self.t_yield() {} // 不断让出 CPU 并调度下一个就绪线程
465467
println!("All tasks finished!");
466468
}
467469
```
@@ -886,7 +888,7 @@ pub fn exit_current_and_run_next(exit_code: i32) {
886888
---
887889

888890
##### 等待线程结束`sys_waittid`
889-
- 如果找到 tid 对应的线程,则尝试收集该线程的退出码 exit_tid ,否则返回错误(退出线程不存在)。
891+
- 如果找到 tid 对应的线程,则尝试收集该线程的退出码 exit_tid,否则返回错误(退出线程不存在)。
890892
- 如果退出码存在(意味该线程确实退出了),则清空进程中对应此线程的线程控制块(至此,线程所占资源算是全部清空了),否则返回错误(线程还没退出)。
891893

892894
---

0 commit comments

Comments
 (0)