單模塊中ReentrantLock的使用

背景

在單模塊應用中,對同一個請求,須要進行同步。注意ReentrantLock的使用場景:java

  • 同一個線程中
  • 同一個請求

RestController

@RestController
public class Controller {
	private final ReentrantLock lock = new ReentrantLock();
	...
	@PostMapping
 	public User add(User user){
 		lock.lock();
		try{
		  ...
		} finally{
		  lock.unlock();
		}

	  }
	...
}

後續

注意,這裏使用場景,必須是在同一線程,同一個請求,纔可以使用ReentrantLock。若是之後有機會,再嘗試一下redis+spring boot來實現分佈式鎖。redis

參考

冪等性和高併發在電商系統中的使用spring

Guide to java.util.concurrent.Locks併發

相關文章
相關標籤/搜索