java之CAS

java的synchronized是一种悲观锁,也就是说,一个线程占用某个资源,直到该线程释放资源。
java的CAS机制采用“无锁”机制,是一种乐观锁,他不采用锁策略,而是用一个值来判断当前资源是否被占用,内部采用自旋校验。
数据库中的行锁,select * from t_b where id = ? for update,其他线程不能对该行进行更新,删除,这种机制如果在高并发场景下,会严重影响效率。完全可以在数据库表中增加一个version字段,每次读取之后让该值加1,然后再写回,这时,只有当写回的version数据库中的version大的时候才更新。
详情参考:
https://blog.csdn.net/liubenlong007/article/details/53761730

猜你喜欢

转载自blog.csdn.net/qq_25956141/article/details/81705229