一、场景
最近在做一个场景,使用websocket对客户端进行发送最新更新的信息,发现需要同时对读写进行并发控制。我这个场景需要对表进行加锁,确保用户的读取是发生在上一个操作之后的,用户的操作必须是one by one的。所以我很希望搞一个锁表的功能,后来决定操作表的过程中使用对象锁,思路是建立一个静态的对象,在相关的方法中对该对象进行加锁,谁先拿到这个对象谁具有优先的读写操作权,一直到这个操作完成再放下一个用户进来。从这个描述中也需要明白这个适用于并发不高的场景,而且每次处理都需要是毫秒级的操作,这样才不至于阻塞操作。
二、代码
思路搞定了,当然,代码是简单的:
synchronized (static object) {
}