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

网站建设答辩ppt模板腾讯学生服务器可以做网站吗

网站建设答辩ppt模板,腾讯学生服务器可以做网站吗,沈阳做网站找黑酷科技,网站怎么盈利的目录 前言 一、确定需要多个锁的场景 1.独立资源保护 2.部分依赖资源 二、避免死锁 三、锁粒度与并发性能 1. 粗粒度锁定 2.细粒度锁定 四、设计策略#xff1a;减少资源依赖 1.资源分离 2.无锁设计 3.锁合并 五、Demo讲解 总结#xff1a; 前言 当多个线程需要…目录 前言 一、确定需要多个锁的场景 1.独立资源保护 2.部分依赖资源 二、避免死锁 三、锁粒度与并发性能 1. 粗粒度锁定 2.细粒度锁定 四、设计策略减少资源依赖 1.资源分离 2.无锁设计 3.锁合并 五、Demo讲解 总结 前言 当多个线程需要操作共享资源时为了确保数据的一致性和避免竞争条件通常会使用多个锁来进行同步。这种情况下如何正确使用多个锁成为一个复杂而关键的问题。下面是一篇十分详细的博客介绍多线程多锁场景下的最佳实践和注意事项。 一、确定需要多个锁的场景 1.独立资源保护 定义当不同的资源例如文件、数据库连接等由不同的锁保护时。示例一个线程需要读取文件A并写入文件B而另一个线程读取文件B并写入文件A这两个操作可以分别使用不同的锁。 2.部分依赖资源 定义多个资源之间存在某种程度的依赖关系但操作它们的线程可能不会同时访问所有资源。示例两个线程分别操作两个互相有数据交换的队列可分别对两个队列加锁但在交换数据时需要特别小心处理锁的顺序。 二、避免死锁 死锁是多线程编程中常见的问题特别是在使用多个锁的情况下更容易发生。要避免死锁可以采取以下策略 按顺序获取锁对多个资源使用相同的顺序获取锁以避免循环等待。设置超时时间在获取锁的过程中设置超时时间一段时间后未能获取到锁就放弃或重试。使用高级同步工具比如信号量Semaphores或条件变量Condition Variables它们提供了更灵活的同步机制有助于避免死锁。 三、锁粒度与并发性能 1. 粗粒度锁定 优点实现简单易于理解和维护。缺点可能导致大量线程等待从而降低并发性能。示例一个单一的大锁保护整个资源集合。 2.细粒度锁定 优点提高并发性能因为锁的范围缩小减少了线程等待的概率。缺点实现复杂需要更精细的设计和管理。示例为每个独立资源或资源的部分使用单独的小锁。 四、设计策略减少资源依赖 1.资源分离 定义尽量将共享资源划分为独立的部分使得每个部分只需一个锁。示例将一个大型数据库拆分为多个独立的部分每个部分由不同的线程和锁管理。 2.无锁设计 定义通过无锁编程如使用原子操作来完全避免锁。示例使用Java的AtomicInteger类进行计数器操作。 3.锁合并 定义在某些情况下将多个锁合并为一个锁以简化锁管理。示例如果两个资源总是一起被访问可以用一个锁来保护它们。 五、Demo讲解 package com.ctb.demo;/*** 关键字synchronized取得的锁都是对象锁而不是把一段代码方法当做锁* 所以代码中哪个线程先执行synchronized关键字的方法哪个线程就持有该方法所属对象的锁Lock* * 在静态方法上加synchronized关键字表示锁定.class类类一级别的锁独占.class类* * author biao** 2024年*/ public class MyThread2 {private int num 0;public synchronized void printNum(String tag) {try {if (tag.equals(a)) {num100;System.out.println(tag a,set num over!);Thread.sleep(1000);}else {num 200;System.out.println(tag b,set num over!);}System.out.println(tag tag , num num);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {final MyThread2 m1 new MyThread2();final MyThread2 m2 new MyThread2();Thread t1 new Thread(new Runnable() {Overridepublic void run() {m1.printNum(a);}});Thread t2 new Thread(new Runnable() {Overridepublic void run() {m2.printNum(b);}});t1.start();t2.start();}} 结果 package com.ctb.demo;/*** 关键字synchronized取得的锁都是对象锁而不是把一段代码方法当做锁* 所以代码中哪个线程先执行synchronized关键字的方法哪个线程就持有该方法所属对象的锁Lock* * 在静态方法上加synchronized关键字表示锁定.class类类一级别的锁独占.class类* * author biao** 2024年2月28日-上午12:07:26*/ public class MyThread2 {private static int num 0;// staticpublic static synchronized void printNum(String tag) {try {if (tag.equals(a)) {num100;System.out.println(tag a,set num over!);Thread.sleep(1000);}else {num 200;System.out.println(tag b,set num over!);}System.out.println(tag tag , num num);} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {final MyThread2 m1 new MyThread2();final MyThread2 m2 new MyThread2();Thread t1 new Thread(new Runnable() {Overridepublic void run() {m1.printNum(a);}});Thread t2 new Thread(new Runnable() {Overridepublic void run() {m2.printNum(b);}});t1.start();t2.start();}}结果 总结 关键字synchronized取得的锁都是对象锁而不是把一段代码方法当做锁 所以代码中哪个线程先执行synchronized关键字的方法哪个线程就持有该方法所属对象的锁Lock 在静态方法上加synchronized关键字表示锁定.class类类一级别的锁独占.class类
http://www.dnsts.com.cn/news/220563.html

相关文章:

  • 学生诚信档案建设网站wordpress id乱码
  • 湖南网站营销推广设计网站建设开始学什么
  • 做网站公司大连江苏定制网站建设费用
  • 浙江网站备案查询天津自助建站软件
  • 自己网站做第三方支付合肥网络推广公司哪家专业
  • 深圳网站建设需要多少费用物联网出来做什么工作
  • 宁波住房和城乡建设部网站模板网站怎么用
  • 鄂州网站设计制作公司跳转网站怎么做的
  • 推广网站的方法有搜索引擎云主机怎么装网站
  • 车辆管理网站开发教育网站建设规划书
  • 建设一个门户网站需要多久山西省工程招标网
  • 学习网站建设的步骤兴化建设局网站
  • 电子商务网站建设的需求磁力链接 网站怎么做的
  • 北京定制网站开发公司浩森宇特北京企业做网站
  • vvic一起做网站网站系统维护中
  • 自助快速建站seo优化关键词
  • 用discuz做门户网站自己做的视频网站如何赚钱
  • 西安手机网站制作大宗贸易交易平台
  • 买模板做网站网站建设利润越来越低
  • 建设考试的报名网站商城app定制
  • html5网站 源码鼓楼网站seo搜索引擎优化
  • 企业网站托管趋势ssr网站开发
  • 上传网站到googlewordpress证书关闭
  • 站规划在网站建设中的作用机械行业营销型网站
  • 北京师范大学学风建设专题网站湛江房产网
  • 中国建设银行网站软件下载郑州建设高端网站
  • 找个人做网站的商标购买平台
  • 给企业做网站挣钱吗重庆百度提升优化
  • 北京网站推广的公司wordpress摘要字数
  • 营口网站建设价格全网推广平台有哪些