有什么简单的方法可以锁定对kotlin中特定资源的访问

有什么简单的方法可以锁定对kotlin中特定资源的访问,kotlin,locking,rmi,synchronous,virtualfilesystem,Kotlin,Locking,Rmi,Synchronous,Virtualfilesystem,我们接到一个任务,我们必须创建一个分布式文件系统。这个文件系统应该有多个服务器,每个服务器执行特定的功能 这个问题与锁服务器有关,锁服务器用于防止两个人同时写入同一个文件。每次尝试访问一个文件都会生成一个线程,该线程在完成时提供对请求文件的访问。如果访问了当前不可用的文件,则应阻止线程,直到释放锁。对于JAVA,我可能只会使用wait()和notify()方法,但Kotlin中没有这些方法(我知道可以通过强制转换来强制它们,但这是不受欢迎的)。有没有一种优雅的方法可以做到这一点?我们不局限于我们

我们接到一个任务,我们必须创建一个分布式文件系统。这个文件系统应该有多个服务器,每个服务器执行特定的功能

这个问题与锁服务器有关,锁服务器用于防止两个人同时写入同一个文件。每次尝试访问一个文件都会生成一个线程,该线程在完成时提供对请求文件的访问。如果访问了当前不可用的文件,则应阻止线程,直到释放锁。对于JAVA,我可能只会使用wait()和notify()方法,但Kotlin中没有这些方法(我知道可以通过强制转换来强制它们,但这是不受欢迎的)。有没有一种优雅的方法可以做到这一点?我们不局限于我们可以使用的图书馆,所以如果你知道一个合适的图书馆,我很乐意去看看。目前,我认为最适合的是
ReentrantLock
,但我正在寻找更多的可能性

我还查看了以下列表: 但是上面列出的那些似乎都不合适——我特别需要堵住这根线,而我发现的一切都正好相反


顺便说一句,系统的不同部分应该通过RMI进行通信。此外,虽然我们可以走自己的路,但我们鼓励使用线程而不是协程。(我们应该在JAVA中工作,但我们被允许使用kotlin和scala)

如果您想使用纯kotlin,您可以利用协同路由,更具体地说,它用于锁定

更多信息可在Kotlin文档中找到,关于