类比: 进程就像一个"员工" 你(操作系统)是一家公司的老板。 每次你要完成一个任务(比如运行 ls),你就雇一个临时工(进程)。 这个临时工有自己的: - 工号(PID,进程ID) - 工位(内存空间) - 工作目录(当前目录) - 环境信息(环境变量,比如 HOME 在哪) 当任务完成后,临时工就离开了(进程退出)。
()
| 25 | # 你在 Python 里写 os.system("ls") 时发生了什么? |
| 26 | |
| 27 | def lesson_1_process(): |
| 28 | """ |
| 29 | 类比: 进程就像一个"员工" |
| 30 | |
| 31 | 你(操作系统)是一家公司的老板。 |
| 32 | 每次你要完成一个任务(比如运行 ls),你就雇一个临时工(进程)。 |
| 33 | 这个临时工有自己的: |
| 34 | - 工号(PID,进程ID) |
| 35 | - 工位(内存空间) |
| 36 | - 工作目录(当前目录) |
| 37 | - 环境信息(环境变量,比如 HOME 在哪) |
| 38 | |
| 39 | 当任务完成后,临时工就离开了(进程退出)。 |
| 40 | """ |
| 41 | print("=" * 60) |
| 42 | print("第一课: 什么是进程") |
| 43 | print("=" * 60) |
| 44 | |
| 45 | # 当前进程(就是你正在运行的这个 Python 脚本) |
| 46 | print(f"\n当前进程的信息:") |
| 47 | print(f" PID (工号): {os.getpid()}") |
| 48 | print(f" 父进程 PID (老板的工号): {os.getppid()}") |
| 49 | print(f" 工作目录 (工位): {os.getcwd()}") |
| 50 | print(f" HOME (家的地址): {os.environ.get('HOME', '未设置')}") |
| 51 | print(f" 用户名: {os.environ.get('USER', '未设置')}") |
| 52 | |
| 53 | # 启动一个子进程(雇一个临时工) |
| 54 | print(f"\n启动子进程执行 'echo hello':") |
| 55 | result = subprocess.run( |
| 56 | ["echo", "hello"], |
| 57 | capture_output=True, text=True, |
| 58 | ) |
| 59 | print(f" 子进程输出: {result.stdout.strip()}") |
| 60 | print(f" 子进程退出码: {result.returncode}") |
| 61 | print(f" (子进程已结束,临时工走了)") |
| 62 | |
| 63 | |
| 64 | # ============================================================ |
no test coverage detected