首页 > 其他分享 >锁机制到加锁的必要性

锁机制到加锁的必要性

时间:2024-09-08 11:24:41浏览次数:3  
标签:加锁 JAVA 方式 必要性 同步 线程 操作 机制 数据

 

 

 

锁在计算机编程终端和服务端的应用很多。后端应用的分层开发以依赖注入的方式通信相互 连接。代理模式的应用在分层解耦。应用终端的锁机制一般都是可视化的应用方式。计算机 应用中的锁种类很多 。锁的主要应用方式是保证区域的安全性。


 

JAVA   的 开 发 领 域 基 础 锁 机 制 是 同 步 代 码 块 。 锁 住 代 码 块 的 方 式 的 关 键 字 是  SYNCRONIZED  。RETRAINEDLOCK  是一种灵活性比较强的可重入锁 。同步锁是 JAVA  高并  发领域中的基础锁。多线程高并发是用户量请求量过大的必然结果。分布式流量分发是一种  解决高并发服务器过载的一种方式。很多的系统操作过程在前置端处理的结果对系统的性能  提升很大。现在的微服务框架处理高并发的方式就是前端限流,后端使用分布式微服务集群。 到达服务端的请求线程数量达到一定的数量级别,都会时而有时而又无的发生共有数据区的  线程操作安全问题 。计算机 CPU 的异步处理机制和分时间片的处理数据的方式决定着线程  安全问题的合理存在 。 同步锁  SYNCRONIZED LOCK  的设计可以让处理器的异步数据处理  编程同步的方式。同步锁会让全局资源的访问线程排队等待,一个一个线程一次获取处理数  据的权限 。 RETRAINEDLOCK  可以在任何的代码段加锁和释放锁 。 同步锁 SYNCHRONIZED  的 操 作 方 式 同 步 代 码 块 的时 候 , 预 留 了 一 个 传 递 锁 的 粒 度 大 小 的 操 作 。 同 步 锁  SYNCHRONZED  加在方法修饰符之前默认使用静态类的同步锁。一个类可以有很多的实例, 实例 OBJECT  的生命周期由JAVA 虚拟机接管 。同步锁还有粒度更细的参数是字段锁,字段  定义在类里面,作用域比实例 OBJECT  要小。程序开发的作用域一般决定着大部分变量的生  命 周 期 。 JAVA   中 的 同 步 锁 的 参 数 传 递 值 决 定 了 该 锁 锁 住 的 区 域 和 时 间 长 短 。  RETRAINEDLOCK  是受限制的基础可重入同步锁,使用方式没有 SYNCHRONIZED  所定义的  那么丰富。

 

计算机的底层硬件决定了锁的不同提现方式。现实世界花花绿绿,有入口的门就要有锁的存 在。现在有很多的密码锁,智能锁逐步在使用电子硬件绑定基础应用的方式加强安全性。悲 观锁使用同步线程的方式保证数据安全,会把所有操作全局资源的线程都同等处理。乐观锁 使用版本号机制更新数据,大量的操作线程使用版本号迭代区别对待。悲观锁锁住时间,乐 观锁会有很多的内存开销 。JAVA  虚拟机服务器端的堆  HEAP  的线程安全性基础类解决方 式就是同步锁 。 底层硬件寄存器 REGISTER  的指令操作方式也是随机异步 。 JAVA  使用 VOLITAILE  关键字对操作指令进行重排。VOLITAILE  保证寄存器全局数据资源不同的操作指 令可见。全局数据资源的数据可大可小,寄存器中的可操作数据并不是不可分割,不需要使 得数据保证原子性能 。操作指令也是存储在寄存器中,使用 VOLITALE JAVA  中的关键字说 明异步指令也在等待所有权限去操作全局资源。

 

JAVA  中有一种原子类比线程安全的数据结构处理数据量更小,可以作为多线程的操作变量  修饰符。AUTOMATICLONG AUTOMATIC INTEGER  是 JDK1.8  之后新添加的线程安全原子类。 优先级队列 PRIORITYQUEUE, CONCURRENTHASHMAP, COPYONREADWRITEARRAYLIST  等  都是  JAVA API  中封装好的线程安全数据结构。使用线程安全数据结构转载数据方式安全可  靠 ,但是它的底层实现细节都屏蔽封装不可见。

 

锁的类型根据不同的定义有不同的实现。基础概念锁使用同步机制保证数据安全。公平锁和  非公平锁,互斥锁, 自旋锁,读写锁,JAVA  中实现方式很多 。 多线程的异步处理数据方式  会产生数据安全性,加锁会产生一种死锁异常现象。死锁原因是锁也是一种计算机运行资源, 锁住的数据会被其它线程访问。A  锁操作 B  锁中的数据,B  锁操作 A  锁中的数据,造成 A  锁和 B  锁中的数据编程不可以触碰的状态。死锁的解决方式可以通过中间锁处理,和 JAVA  中的循环依赖需要一个中间依赖做交换,从而不会产生循环依赖引用。数据库中也会有很多  的死锁现象的存在。锁的粒度有大有小,表锁大一点行级锁小一点,字段锁锁住的就是表的  某个字段。

 

标签:加锁,JAVA,方式,必要性,同步,线程,操作,机制,数据
From: https://www.cnblogs.com/liaowanzhong/p/18402698

相关文章

  • PLC(电力载波通信)网络机制介绍
    1.概述1.1什么是PLC电力载波通讯即PLC,是英文PowerlineCarrier的简称。电力载波是电力系统特有的通信方式,电力载波通讯是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。最大特点是不需要重新架设网络,只要有电线,就能进行数据传递。 名词解释:相位:C......
  • 命令空间(namespace)===> 用于防止名字冲突而引入的一种机制
    命令空间(namespace)用于解决同名实体:同名函数同名变量同名的类定义防止名字冲突而引入的一种机制。系统中可以定义多个命名空间,每个命名空间都有自己的名字,不可以同名可以看成一个作用域命名空间的定义#类似java中包的概念:在不同cpp文件中创建同名的方法等namesp......
  • Qt精品级项目——手撕信号槽机制的拳皇摇杆demo
    Qt精品级项目——手撕信号槽机制的拳皇摇杆demo1.前言&资源大家好,我是程序员Akgry。几天没见,阿克的Qt能力又是突飞猛进,阿克现在每天从睁眼学到闭眼,没了杂七杂八的东西掣肘,学起东西来非常舒适,虽然假期偷偷内卷很反人类,但是阿克今年就要参加秋招了,技术上的东西又岂敢怠慢。......
  • 【工具使用】【OpenFeign 】OpenFeign 下的重试机制
    1 前言服务间的调用,大家可能会用到OpenFeign方式。那么当被调用服务可能会因为某种情况导致调用失败(这个失败可能好似下游服务重启了或者超时断开等)的情况下,我们想重试的情况下该怎么做呢?本节我们就来看看。2 环境准备首先准备一下,我这里有两个服务,一个是demo一个是vi......
  • 淘宝客系统的容错与恢复机制
    淘宝客系统的容错与恢复机制大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在构建淘宝客系统时,容错与恢复机制是保证系统稳定性和可靠性的关键。这些机制能够确保在遇到错误或故障时,系统能够优雅地处理问题,并尽可能快地恢复正常运行。本文将介......
  • YOLOv9改进策略【注意力机制篇】| PSA极化自我关注: 实现高质量像素回归
    一、本文介绍本文记录的是基于PSA注意力模块的YOLOv9目标检测方法研究。PSA模块通过极化滤波和增强设计,提高了内部分辨率,并增强非线性拟合,从而能够提升像素级回归任务的性能。本文将其应用到YOLOv9的检测任务中,使模型能够更好地捕捉图像中的细节信息,以实现目标检测任务中准......
  • 13. 说说 MyBatis 的缓存机制?
    MyBatis提供了一级缓存和二级缓存两种缓存机制,用于提高应用程序的性能,减少数据库的访问次数。缓存机制是MyBatis的一个重要特性,通过缓存可以在一定程度上减少对数据库的访问,从而提高查询性能。1.一级缓存(LocalCache)作用范围:一级缓存是MyBatis默认开启的缓存机制,作用......
  • 从底层代码理解Vue 响应式系统的核心机制
    在Vue.js的响应式系统中,依赖收集和变化检测是核心机制,确保了数据的变动能够自动驱动视图更新。在上文我们已经了解了的依赖收集和变化检测与更新过程,主要依赖于Watcher、Dep和响应式的getter和setter来实现。下面详细从底层代码解释这两个过程文章目录1.依赖收......
  • 延时机制
    非堵塞类:1.短延时,不睡眠,在延时函数内,跑循环 2.长延时 堵塞类: msleep深度睡眠msleep_interruptible浅度睡眠 延时类型选择原则: 堵塞时,任务会进入等待队列,等堵塞结束后,任务会出现出队,这个过程产生了任务切换的过程,会产生开销。所以在任务上下文中短延时采用等......
  • HTTP协议基本知识点:工作原理、http请求、响应、连接以及缓存机制
    目录一、HTTP概述二、HTTP的版本三、HTTP请求1.请求方法2.请求头四、HTTP响应1.状态码2.响应头五、HTTP持久连接六、缓存机制1.CacheControl2.ETag3.LastModified七、安全性八、使用场景总结 一、HTTP概述 全称:超文本传输协议(HyperTextTransferProtoco......