锁定访问kotlin中特定资源的简单方法是多么有效



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

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

我还查看了此列表:https://stackoverflow.com/a/35521983/7091281但列出的似乎都不合适——我特别需要屏蔽线程,而我发现的一切都完全相反。

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

如果您想使用纯Kotlin,您可以利用协程,更具体地说,它的Mutex用于锁定。

更多信息可以在Kotlin文档中找到,关于共享可变状态和并发

相关内容

  • 没有找到相关文章

最新更新