有没有办法在R进程之间共享锁(例如锁文件)?

Mic*_*uhn 6 semaphore locking r

我有一堆不同的R进程(从命令行独立启动),它们都需要加载不同的大文件.为了避免堵塞网络,我想添加一个锁/信号量,例如通过一个锁文件,以便他们一个接一个地获取它们的文件.在标准Linux系统上,只有一个进程应该能够获取锁.

Mic*_*uhn 3

虽然我找不到 R 包,但lockfile可以使用 Linux 命令:

write("Attempting to get lock", stderr())
system("lockfile /tmp/my_simple_lock")

# Do stuff

write("Releasing lock", stderr())
system("rm -f /tmp/my_simple_lock")
Run Code Online (Sandbox Code Playgroud)

  • 除了 `system("rm -f /tmp/my_simple_lock")` 您也可以使用 `file.remove("/tmp/my_simple_lock")` (2认同)