Julia-是否可以判断程序是否正在运行?

Julia-是否可以判断程序是否正在运行?,julia,Julia,我试图只在启动的应用程序完成运行后继续我的代码。这个程序主动生成一个与我的julia脚本并行的.txt文件。然后,我的代码需要在完成的文件中读取。当前的问题是julia正在读取正在写入的文件。这导致数据集不完整 目前,我在while循环中分析文本文档的文件大小,以暂停程序,直到该大小停止迭代。见下文: prevSize = 0 while prevSize != filesize(polarPath) sleep(2) global prevSize = filesize(pol

我试图只在启动的应用程序完成运行后继续我的代码。这个程序主动生成一个与我的julia脚本并行的.txt文件。然后,我的代码需要在完成的文件中读取。当前的问题是julia正在读取正在写入的文件。这导致数据集不完整

目前,我在while循环中分析文本文档的文件大小,以暂停程序,直到该大小停止迭代。见下文:

prevSize = 0
while prevSize != filesize(polarPath)
    sleep(2)
    global prevSize = filesize(polarPath)
end

除了程序对各种输入参数的写入速度不一致外(因此出现了草率的
睡眠(2)
)。这为大多数情况下的程序编写提供了时间,但我正在寻找一个更优雅的解决方案。我认为可能有一种方法可以检查外部程序是否已关闭(它在完成文件编写后会自动关闭)。

我通常建议为此使用与语言无关的操作系统工具,例如,当给定目录中的某个文件被打开进行写入,然后被关闭时,可用于启动Julia程序……也就是说,如果您想查看本机Julia inotify客户端(当文件系统所关心的文件监视到事件发生时,从文件系统获取通知),看看另一种在良好实践范围内的方法是咨询锁定。如果文件在写入时使用排他位集对其进行
flock
加密,并且在尝试读取时尝试使用共享位集对其进行
flock
,则在写入完成之前不会进行读取(并且保存该文件的程序退出时,写入锁将自动清除)。这是一个很好的语言不可知特性;您可以在几乎任何语言中使用flock,包括shell脚本(如果安装了
util linux
或另一个带有命令行包装器的工具包)您还可以使用
@async
从Julia内部运行
另一个程序,然后等待
@sync
直到过程完成,以便您可以读取它。也就是说,如果你能控制其他程序的执行,我通常建议你使用与语言无关的操作系统工具,例如,当给定目录中的某个文件被打开进行写入,然后被关闭时,可用于启动Julia程序……也就是说,如果您想查看本机Julia inotify客户端(当文件系统所关心的文件监视到事件发生时,从文件系统获取通知),看看另一种在良好实践范围内的方法是咨询锁定。如果文件在写入时使用排他位集对其进行
flock
加密,并且在尝试读取时尝试使用共享位集对其进行
flock
,则在写入完成之前不会进行读取(并且保存该文件的程序退出时,写入锁将自动清除)。这是一个很好的语言不可知特性;您可以在几乎任何语言中使用flock,包括shell脚本(如果安装了
util linux
或另一个带有命令行包装器的工具包)您还可以使用
@async
从Julia内部运行
另一个程序,然后等待
@sync
直到过程完成,以便您可以读取它。也就是说,如果您可以控制其他程序的执行。