Java:三级用户并发

Java: Concurrency with three level users

如何实现服务 (class),其中有三个级别的用户(线程)以不同的优先级访问它?

理想情况下,

有什么好的方法吗?

您可能可以使用三个 ReadWriteLock 来实现关卡独占,每个级别一个。

3 级用户将在 level3Lock 上使用读锁。

2 级用户将在 level3Lock 上使用写锁,在 level2Lock 上使用读锁 - 当 2 级用户正在处理时,3 级用户将无法访问数据。

Level-1 用户会延续传统,写锁 level-3 和 level-2 锁。

但是 - 这仅实现排他性。如果您真的想要优先级功能,您可以使用队列控制访问 - PriorityQueue 是一个显而易见的选择。正确设置 Executor 将处理来自该队列的任务。