threading模块遇到的问题

文章讨论了在多线程环境中,避免使用os.chdir()进行目录切换以防止线程间共享带来的问题。推荐使用绝对路径操作,并通过subprocess的cwd参数指定工作路径。同时,作者强调了多进程间的隔离性及其资源消耗特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多线程时,线程共享导致一个子线程切到某个路径后,另一个线程的工作目录改变。

在多线程中尽量不要使用os.chdir()来进行目录切换,可以用绝对路劲来进行操作。

例如:

  • os路径操作时,使用绝对路径操作,而不是先切换目录,再使用相对路径操作
  • subprocess执行命令时,使用subprocess的cwd参数,来指定工作路径
  • 采用多进程的方式,因为进程间是隔离的,互不影响,但是多进程的资源消耗相对多