当前位置: 首页 > news >正文

淘宝优惠的网站怎么做站长之家域名信息查询

淘宝优惠的网站怎么做,站长之家域名信息查询,设计网站如何推广,加强服务保障 满足群众急需需求锁的简介 锁是计算机协调多个进程或线程并发访问某一资源的机制(避免发生资源争抢) 在并发环境下,多个线程会对同一个资源进行争抢,可能会导致数据不一致的问题。为了解决这一问题,需要通过一种抽象的锁来对资源进行…

锁的简介

锁是计算机协调多个进程或线程并发访问某一资源的机制(避免发生资源争抢)

在并发环境下,多个线程会对同一个资源进行争抢,可能会导致数据不一致的问题。为了解决这一问题,需要通过一种抽象的锁来对资源进行锁定,锁就是对共有的资源进行了保护,保证程序在并发场景下有条不紊的,安全性的运行。

锁通常需要硬件支持才能有效实施。这种支持通常采取一个或多个原子指令的形式,如"test-and-set", “fetch-and-add” or “compare-and-swap””。这些指令允许单个进程测试锁是否空闲,如果空闲,则通过单个原子操作获取锁

锁的代码理解

锁是Java并发编程中最重要的的同步机制,锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。
锁的伪代码形式

try{lock() // 获取锁// 执行代码
}finally{unLock() //释放锁
}

在lock()获取锁资源的临界点之外是无序的,如果是多线程并发抢资源,当A锁释放是,会通知B获取锁。
image.png

锁分类

悲观锁和乐观锁

乐观锁:乐观锁总是认为不存在并发问题,每次去取数据的时候,总认为不会有其他线程对数据进行修改,因此不会上锁。但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用“数据版本机制”或“CAS操作”来实现。

悲观锁:悲观锁认为对于同一个数据的并发操作,一定会发生修改的,哪怕没有修改,也会认为修改。因此对于同一份数据的并发操作,悲观锁采取加锁的形式。悲观的认为,不加锁并发操作一定会出问题。典型的数据库的查询 for update。

在对任意记录进行修改前,先尝试为该记录加上排他锁(exclusive locking)。
如果加锁失败,说明该记录正在被修改,那么当前查询可能要等待或者抛出异常。具体响应方式由开发者根据实际需要决定。
如果成功加锁,那么就可以对记录做修改,事务完成后就会解锁了。期间如果有其他对该记录做修改或加排他锁的操作,都会等待我们解锁或直接抛出异常。

排它锁和共享锁(读锁和写锁)

排它锁:指锁一次只能被一个线程所持有,其它线程只能进行等待止到锁被锁被释放从而继续尝试获取锁
共享锁:指锁可被多个线程所持有。在数据库中是加读锁,即事务A对数据加锁后,只能读取加锁的数据,不能读取其他数据,其他事务可以读取,均不能修改(增,删、改)。

公平锁和非公平锁

公平锁:就是很公平,在并发环境中,每个线程在获取锁时会先查看此锁维护的等待队列,如果为空,或者当前线程线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照FIFO的规则从队列中取到自己
非公平锁:线程加锁时直接尝试获取锁,获取不到就自动到队尾等待

可重入锁

就是一个进程获得了该锁后,该进程调用其自己的方法,该方法内有访问了这个被自己锁住的资源,此时,可以放行,可以访问。就是在同一线程的外层方法获取锁的时候,在进入内层方法自动获取锁

偏向锁/轻量级锁/重量级锁
优点缺点适用场景
偏向锁加锁解锁无需额外的消耗如果存在锁竞争,则存在锁撤销的消耗只有一个线程访问同步方法快的场景
轻量级锁竞争的线程不会存在阻塞,提高了程序的响应速度。若始终得不到锁竞争的线程使用自旋会消耗CPU同步块执行的速度非常的快
重量级锁线程使用者不会自旋,不会消耗CPU线程阻塞,响应时间慢吞吐量大
http://www.shuangfujiaoyu.com/news/26227.html

相关文章:

  • 网站排名优化制作北京朝阳区优化
  • 网站建设前景武汉seo服务
  • 男的做直播哪个网站深圳市网络营销推广服务公司
  • 全国p2p网站建设自建网站平台有哪些
  • 金坛做网站爱站网站排行榜
  • 没有公司怎么做网站推广app赚佣金
  • 广州商城网站建设报价百度知道合伙人官网
  • php做的网站收录百度关键词挖掘查排名工具
  • 网站建设平台计划书网络免费推广平台
  • 网站建设的原因指数基金怎么选
  • 怎么做一键添加信任网站交换免费连接
  • 网页设计的工作流程seo长尾关键词排名
  • 镇江网站制作公司凤凰网台湾资讯
  • 汾阳今天重大新闻湖南网站优化
  • 安全联盟网站认证怎么拿到百度推广的代理
  • 做外贸哪里网站比较好站长工具外链查询
  • 网站开发公司专业站长之家下载
  • 做手机网站用什么程序好微信营销怎么做
  • 美国做网站工资seo整站网站推广优化排名
  • 怎么选择网站建设广州白云区今天的消息
  • 公司网站建设有哪些域名地址查询
  • 佛山营销网站开发游戏代理平台哪个好
  • 怎样学做企业网站外链是什么意思
  • html5做网站系统南宁seo产品优化服务
  • 定制网站建设费用看片应该搜什么关键词哪些词
  • 软件开发入门教程广州网站优化排名
  • 做金融平台网站需要多少钱百度推广登录后台登录入口
  • 南通外贸网站推广百度ai入口
  • 做网站软件流程关键词seo
  • 外汇局网站怎么做延期收款报告广州软件系统开发seo推广