一、場景
最近在做一個場景,使用websocket對客戶端進行發(fā)送最新更新的信息,發(fā)現(xiàn)需要同時對讀寫進行并發(fā)控制。我這個場景需要對表進行加鎖,確保用戶的讀取是發(fā)生在上一個操作之后的,用戶的操作必須是one by one的。所以我很希望搞一個鎖表的功能,后來決定操作表的過程中使用對象鎖,思路是建立一個靜態(tài)的對象,在相關的方法中對該對象進行加鎖,誰先拿到這個對象誰具有優(yōu)先的讀寫操作權,一直到這個操作完成再放下一個用戶進來。從這個描述中也需要明白這個適用于并發(fā)不高的場景,而且每次處理都需要是毫秒級的操作,這樣才不至于阻塞操作。
二、代碼
思路搞定了,當然,代碼是簡單的:
synchronized (static object) {
}