Java 集群锁如何实现

Java 集群锁如何实现,第1张

1 用数据,在数据库建一张表,需要锁的节点都可以尝试用 select from Lock where id=xx for update 这个时候只有一个节点能拿到结果,其它的都会等待,就能实现一个简单的悲观锁。

2 用 Zookeeper 来做分布式锁,具体可以搜一下。

3 自己实现,搞个节点来做这个事情,所有要获取锁的都走 RPC 调用来请求锁,用完以后记得释放,不然其他的节点就会挂那里。

oracle吗查看这个Java登录的session的用户,用这个用户登录sqlplus再执行上面的语句看,javautilNoSuchElementException应该是权限问题,没法访问这些表,相当于当前用户的schema下没有这些表

首先synchronized不可能做到对某条数据库的数据加锁。它能做到的只是对象锁。

比如数据表table_a中coloum_b的数据是临界数据,也就是你说的要保持一致的数据。你可以定义一个类,该类中定义两个方法read()和write()(注意,所有有关该临界资源的 *** 作都定义在这个类中),再定义一个静态变量作为锁就可以了。

public static final String LOCK = "table_a_b_lock";

public int read(){

synchronized LOCK{

Systemoutprintln("read data");

}

}

public void write(String data){

synchronized LOCK{

Systemoutprintln("write data:" + data);

}

}

另外,还可以在数据库级别加上锁。数据库本来就支持不同的隔离级别。

以上就是关于Java 集群锁如何实现全部的内容,包括:Java 集群锁如何实现、java中怎么查看数据库是否锁表、java处理高并发时,使用synchronized代码锁防止同时对数据库某一数据的问题。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9309357.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存