[quote=引用 2 楼 rumlee 的回复:] 加锁确实对性能有影响,但是这是不可避免的。 这种问题为什么要循环扫描呢?座位上的人离开的时候,不主动通知吗?
[quote=引用 6 楼 ygycomon 的回复:] 你实测过加锁带来的性能开销么? 别老妄想一些“多快好省”的方法可以解决问题,在你的业务场景里,如果要多线程的“抢座”,就必须要上锁,同步抢座,离开(insert、remove)的操作,这是没有办法绕过的步骤,所以不管加锁开销多大,要么你就接受这个开销,要么就接受数据安全问题 这个加锁的过程你想复杂了,可以用concurrenthashmap来做
你实测过加锁带来的性能开销么? 别老妄想一些“多快好省”的方法可以解决问题,在你的业务场景里,如果要多线程的“抢座”,就必须要上锁,同步抢座,离开(insert、remove)的操作,这是没有办法绕过的步骤,所以不管加锁开销多大,要么你就接受这个开销,要么就接受数据安全问题 这个加锁的过程你想复杂了,可以用concurrenthashmap来做
java.util.concurrent.ExecutorService java.util.concurrent.Executors java.util.concurrent.Semaphore 能搞定不?
加锁确实对性能有影响,但是这是不可避免的。 这种问题为什么要循环扫描呢?座位上的人离开的时候,不主动通知吗?
[quote=引用 9 楼 ygycomon 的回复:] 锁上加锁没什么好囧的,如果要保证安全,你就要设计合理的数据结构,如果你设计出来的结构必须要加锁,那是跑不掉的。 不过这个场景如要我来设计,我不会用hashmap这样的数据结构,会转用其他的思路来解决问题
锁上加锁没什么好囧的,如果要保证安全,你就要设计合理的数据结构,如果你设计出来的结构必须要加锁,那是跑不掉的。 不过这个场景如要我来设计,我不会用hashmap这样的数据结构,会转用其他的思路来解决问题
62,621
社区成员
307,251
社区内容
加载中
试试用AI创作助手写篇文章吧