首页 > 编程知识 正文

JAVA线程锁,java锁

时间:2023-05-03 10:03:50 阅读:39998 作者:4102

在分布式集群系统的开发中,线程锁定往往并不支持所有场景的使用,而是必须引入新的技术方案分布式锁定。

线程锁定:是谁也不知道的,但主要用于对方法、代码块进行锁定。 如果方法或代码块使用锁定,则一次最多只能有一个线程运行该代码。 如果多个线程访问同一对象的锁定方法/代码块,则同一时间只运行一个线程,而剩下的线程必须在当前线程执行完成之前运行代码段。 但是,其馀线程可以访问该对象中的未锁定代码块。

进程锁:还用于控制同一操作系统中的多个进程访问单个共享资源。 但是,由于程序的独立性,每个进程不能控制其他进程对资源的访问,但可以使用本地系统的信号控制(操作系统的基础)。

分布式锁定:如果多个进程不在同一系统中,则使用分布式锁定控制多个进程对资源的访问。

分散锁定是什么,怎么实现?

intsmaze简单地说,要实现分布式锁定,必须依靠第三方存储介质来存储锁定的元数据等信息。 例如,当分布式集群试图操作某一行的数据时,该数据的流编号是唯一的。 那么,将该流号码作为密钥id,当某一进程要操作该数据时,首先去看在第三方存储介质中是否存在该密钥id,如果不存在,则写入该密钥id,然后执行对该数据的操作; 当其他进程尝试访问此数据时,首先检查第三方存储介质中是否存在此数据的锁定id。 如果有,则认为此数据当前正在被其他进程使用,并不断轮询其他进程是否已解除锁定。 当进程处理数据时,该进程将在第三方存储介质上删除锁定id,并允许其他轮询进程控制锁定。

我说了这么多,再补充一点,线程锁、进程锁和分布式锁的作用相同,但作用范围的大小不同。 范围大小:分布式锁定进程锁定线程锁定。 可以使用线程锁定,在进程锁定的情况下可以使用分布式锁定,在线程锁定可用的情况下可以使用进程锁定。 只是,范围越大,技术上就越复杂。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。