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

网站策划建设阶段的推广福州专业网站建设

网站策划建设阶段的推广,福州专业网站建设,网站ui界面设计软件,电商建网站一、锁的作用 锁是为了解决多线程情况下#xff0c;对于共享资源的访问安全问题。 但是当系统是分布式的时候#xff0c;本地锁已经没法锁住所需要的资源#xff0c;因为本地获取了锁#xff0c;其他系统无法得知本地锁的情况。 分布式锁#xff0c;是独立于系统的第一方…一、锁的作用 锁是为了解决多线程情况下对于共享资源的访问安全问题。 但是当系统是分布式的时候本地锁已经没法锁住所需要的资源因为本地获取了锁其他系统无法得知本地锁的情况。 分布式锁是独立于系统的第一方实现的功能。因而状态可供不同系统获取。 二、分布式锁实现 2.1、基于redis实现 基于redis实现的分布式锁是当下比较流行的一种实现方式。 利用redis的set命令用全路径类名方法名作为key当前线程id作为value插入一条记录当且仅当该记录不存在。 如果返回1代表成功获取到锁返回0代表锁已经被其他线程获取了。 命令 格式set key value nx ex 过期时间 释放锁的时候需要判断是否是自己加的锁只能释放自己加的锁。 这样即可以防止系统挂掉导致无法释放锁的情况。不过又引入了锁内代码还没执行完就提前释放的情况因此需要锁续期。可以设置一个守护线程在快要到达第一次超时时间的时候启动守护线程给锁续期每隔所续的时间再次启动守护线程续期。 2.2、基于数据库实现 利用数据库唯一索引来实现分布式锁。 建立一个分布式锁表包含字段全路径类名、方法名给全路径类名方法名建立唯一索引。唯一索引会限制只有一个线程能成功插入数据。 获取锁的时候就往数据库插入一条数据如果插入成功则代表获取到分布式锁。 释放锁的时候就删除该记录。 存在的问题如果获取锁之后数据库或者服务器挂了那么分布式锁就没法释放。使用主从数据库可以解决数据库挂了的问题。服务器挂了的问题可以通过启动一个定时任务根据记录创建时间定时删除数据库超时的记录。 可以通过记录获取锁的主机信息和线程信息如果查到已存在的记录属于当前线程就将锁分配给他实现可重入。 2.3、基于数据库排他锁实现 在查询语句的后面加上for update数据库会启动排他锁利用排他锁可以实现分布式锁。 用户查询到数据就代表他获取了锁可以执行业务代码最后commit提交释放排他锁。 数据库被加了排他锁之后其他线程还想加排他锁就会被阻塞。
http://www.hkea.cn/news/14301396/

相关文章:

  • 张槎建网站公司织梦网站开发
  • 专业网站建设最便宜免费空间做网站
  • 网站制作主要公司百度搜索推广多少钱
  • wordpress软件下载站做网站公司需要什么职位
  • 做网站与做网页的区别安徽最新天气预报
  • 网站建设竞价托管服务北京住房建设部网站
  • 江苏建站管理系统开发99设计网站
  • 做网站公司 上海开原网站建设
  • 智能建站软件免费网站后台管理系统模板
  • 做网站襄樊兰州市解封最新消息
  • 自己怎么做网站啊小型工作室创业项目
  • 黄村做网站哪家好做我女朋友的网站
  • 做有色金属哪个网站好网站开发未按合同约定工期完工
  • 管理手机网站模板如何卸载wordpress
  • 可信网站认证 技术支持单位怎样做一个网站赚钱吗
  • 南山制作网站公司旅游商城网站模板
  • 网站站点多少钱域名时间与网站优化
  • 建设银行境外汇款申请书网站如何个人电脑做网站
  • 达内it教育官网津seo快速排名
  • 根目录下两个网站怎么做域名解析温岭自适应网站建设
  • 注册公司网站怎么收费如何兼职做网站
  • 网站建设与网页设计考试题有哪个网站能卖自己做的衣服
  • app在线生成网站seo做得比较好的公司
  • 成都网站建设龙兵科技优化公司股权结构
  • 电脑网站设计公司猎头公司招聘
  • 徐州网站建设方案维护网站建设评比标准
  • 湖北智能网站建设制作济南网页设计招聘
  • 网站建设中最重要的是什么室内设计找哪个公司好
  • 济南网站建设培训厦门做网站优化多少钱
  • 网站建设与管理教学视频西安旅游攻略自由行