我正在尝试将 go 例程中的目录更改为目录 x。我现在想使用不同的 go 例程将目录更改为目录 y。我的第一个 go 例程的执行会受到第二个 go 例程中当前工作目录的更改的影响吗?想要这样做的目的是在执行类似任务时引入并行性。如果它最终确实改变了 CWD,替代方法应该是什么(分叉......)?
正如评论中提到的,跟踪每个 goroutine 中的当前工作目录会导致问题。
尝试使用filepath.Abs 捕获绝对目录并存储它。然后每个 goroutine 都可以在它自己的目录上操作,而不必担心它在幕后被“切换”。只要确保多个 goroutine 不会意外修改同一个文件即可。
编辑:根据 @Evan 的评论删除一大块文本。使用绝对路径:p