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

网站建设优化课程网站开发技术说明文档

网站建设优化课程,网站开发技术说明文档,网站主域名,wordpress add filter全局锁是控制全局系统之间同步访问共享资源的一种方式。 下面介绍zookeeper如何实现全民锁#xff0c;讲解他锁和共享锁两类全民锁。 排他锁 排他锁#xff08;Exclusive Locks#xff09;#xff0c;又被称为写锁或独占锁#xff0c;如果事务T1对数据对象O1加上排他锁…全局锁是控制全局系统之间同步访问共享资源的一种方式。 下面介绍zookeeper如何实现全民锁讲解他锁和共享锁两类全民锁。 排他锁 排他锁Exclusive Locks又被称为写锁或独占锁如果事务T1对数据对象O1加上排他锁那么整个加锁期间只允许事务T1对O1进行和读取更新操作其他事务都不能进行读或写。 定义锁 /exclusive_lock/lock 实现方式 利用zookeeper的同级节点的唯一性特性在需要获取排他锁时所有的客户端尝试通过调用create()接口在/exclusive_lock节点下创建临时子节点/exclusive_lock/lock最终只有一个客户端能力创建成功那么此客户端就获得了一轮锁。同时所有没有获取到锁的客户端可以在/exclusive_lock节点上注册一个子节点变更的watcher监听事件以便重新争取获得锁。 共享锁 共享锁Shared Locks约定读锁。如果事务T1对数据对象O1加上了共享锁那么当前事务只能对O1读取进行操作事务也只能对这个数据对象其他数据对象加共享锁直到该数据对象上的所有共享锁都释放。 定义锁 /shared_lock/[hostname]-请求类型W/R-序号 实现方式 1、客户端调用create方法创建类似定义锁定方式的临时顺序节点。 2、客户端调用 getChildren 接口来获取所有已创建的子节点列表。 3、判断是否获得锁对于读请求如果所有比自己小子节点都是读请求或者没有比自己序号小子节点表明已经成功获取共享锁同时开始执行度逻辑。对于写请求如果自己不是序号最小的子节点那么就进入等待。 4、如果没有获取到共享锁读请求向比自己序号小最后一个节点注册watcher监听写请求向比自己序号小最后一个节点注册watcher监听。 实际开发过程中可以通过curator工具包封装的API帮助我们实现全球锁。 dependencygroupIdorg.apache.curator/groupIdartifactIdcurator-recipes/artifactIdversionx.x.x/version /dependency 策展人的几种锁方案 1、InterProcessMutex多重可重入排锁2、InterProcessSemaphoreMutex遍布它锁3、InterProcessReadWriteLock全局读写锁 下面的例子模拟50个线程使用重入排它锁InterProcessMutex同时争抢锁 public class InterprocessLock {public static void main(String[] args)  {CuratorFramework zkClient getZkClient();String lockPath /lock;InterProcessMutex lock new InterProcessMutex(zkClient, lockPath);//模拟50个线程抢锁for (int i 0; i 50; i) {new Thread(new TestThread(i, lock)).start();}}static class TestThread implements Runnable {private Integer threadFlag;private InterProcessMutex lock;public TestThread(Integer threadFlag, InterProcessMutex lock) {this.threadFlag threadFlag;this.lock lock;}Overridepublic void run() {try {lock.acquire();System.out.println(第threadFlag线程获取到了锁);//等到1秒后释放锁Thread.sleep(1000);} catch (Exception e) {e.printStackTrace();}finally {try {lock.release();} catch (Exception e) {e.printStackTrace();}}}}private static CuratorFramework getZkClient() {String zkServerAddress 192.168.3.39:2181;ExponentialBackoffRetry retryPolicy new ExponentialBackoffRetry(1000, 3, 5000);CuratorFramework zkClient CuratorFrameworkFactory.builder().connectString(zkServerAddress).sessionTimeoutMs(5000).connectionTimeoutMs(5000).retryPolicy(retryPolicy).build();zkClient.start();return zkClient;} } 控制台每间隔一个工作站输出一条记录 希望你也学会了更多编程源码模板请来二当家的素材网https://www.erdangjiade.com
http://www.hkea.cn/news/14525764/

相关文章:

  • 网页游戏平台网站一般网站开发的硬件要求
  • 网站建设参考文献英文书籍拖拽响应式网站建设公司
  • 企业网站建设平台的分析怎么制作外贸网站模板
  • 中国跨境电商出口平台如何做好网站推广优化
  • 最好的网站设计公司建立网站内容需要做的事
  • c2c网站方案互联网创新创业大赛项目计划书
  • 微网站建设市场分析wordpress 跳转首页
  • 丽水集团网站建设广西工程建设质量管理协会网站
  • 网站策划的工作要求全网营销实战培训
  • 无域名建网站沙田仿做网站
  • 吉林市网站制作wordpress关键词工具
  • ppt公司简介模板大连百度推广seo
  • 横店网站开发html网站设计
  • 电子商务网站有哪些内容安徽建设工程信息网官方网站
  • app网站怎么制作猪八戒托管赏金做网站
  • 长沙做网站最好的公司html怎么写
  • android网站开发视频什么是网络营销组合策略
  • centos7系统做网站企业网站优化系统
  • 全国各大知名网站上海市网站建
  • 网站制作语言linux做网站的好处
  • .net 网站 语言营销培训心得体会
  • 网站开发的检索速度在啥范围之内推广信息哪个平台好
  • 永久免费的网站服务器有哪些平台软文推广收费
  • 网站负责人备案采集照静态页面网站
  • 网站设计可以用性原则电子商城网站开发合同
  • 广州网站建设与网页设计微信小程序投票怎么快速投多票
  • 如何编辑网站源代码深圳龙岗新楼盘开盘信息
  • 青岛网络推广建站元氏网站制作
  • 南庄顺德网站建设seo谷歌推广
  • 网站设计亮点网站设计大概流程