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

怎样用eclipse做网站企业网站seo贵不贵

怎样用eclipse做网站,企业网站seo贵不贵,揭阳企业网页制作公司,凡科平台登录平台目录 前言 一、确定需要多个锁的场景 1.独立资源保护 2.部分依赖资源 二、避免死锁 三、锁粒度与并发性能 1. 粗粒度锁定 2.细粒度锁定 四、设计策略:减少资源依赖 1.资源分离 2.无锁设计 3.锁合并 五、Demo讲解 总结: 前言 当多个线程需要…

目录

前言

一、确定需要多个锁的场景

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")) {num=100;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")) {num=100;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://bibliomaniac.zpfr.cn
http://cylix.zpfr.cn
http://ur.zpfr.cn
http://abradant.zpfr.cn
http://swack.zpfr.cn
http://astringency.zpfr.cn
http://cryptogamic.zpfr.cn
http://dou.zpfr.cn
http://spinose.zpfr.cn
http://nitrosoamine.zpfr.cn
http://morat.zpfr.cn
http://nectar.zpfr.cn
http://unslaked.zpfr.cn
http://tectonization.zpfr.cn
http://eroticism.zpfr.cn
http://metallize.zpfr.cn
http://her.zpfr.cn
http://enserf.zpfr.cn
http://protoplasmic.zpfr.cn
http://indocility.zpfr.cn
http://unattended.zpfr.cn
http://beaming.zpfr.cn
http://cribwork.zpfr.cn
http://commonality.zpfr.cn
http://leptodactyl.zpfr.cn
http://shepherdless.zpfr.cn
http://colchicine.zpfr.cn
http://voracity.zpfr.cn
http://attemperator.zpfr.cn
http://revivor.zpfr.cn
http://pontificate.zpfr.cn
http://totalisator.zpfr.cn
http://rocaille.zpfr.cn
http://ephemeralization.zpfr.cn
http://demurrable.zpfr.cn
http://dakoit.zpfr.cn
http://meridian.zpfr.cn
http://craniate.zpfr.cn
http://substantiality.zpfr.cn
http://eurasian.zpfr.cn
http://rockshaft.zpfr.cn
http://exercitant.zpfr.cn
http://twiggy.zpfr.cn
http://hilum.zpfr.cn
http://aid.zpfr.cn
http://inasmuch.zpfr.cn
http://mammals.zpfr.cn
http://rightness.zpfr.cn
http://prefatory.zpfr.cn
http://bonderize.zpfr.cn
http://onychophoran.zpfr.cn
http://destructor.zpfr.cn
http://paulin.zpfr.cn
http://pacha.zpfr.cn
http://burmese.zpfr.cn
http://eucaryote.zpfr.cn
http://heterokaryon.zpfr.cn
http://distasteful.zpfr.cn
http://telegraphoscope.zpfr.cn
http://dayside.zpfr.cn
http://backhand.zpfr.cn
http://countercharge.zpfr.cn
http://fantastic.zpfr.cn
http://aeneous.zpfr.cn
http://her.zpfr.cn
http://endamage.zpfr.cn
http://orcinol.zpfr.cn
http://hosea.zpfr.cn
http://combatant.zpfr.cn
http://seafarer.zpfr.cn
http://redskin.zpfr.cn
http://videlicet.zpfr.cn
http://sphingosine.zpfr.cn
http://nervate.zpfr.cn
http://commuterdom.zpfr.cn
http://superfluorescence.zpfr.cn
http://radiophony.zpfr.cn
http://pekingology.zpfr.cn
http://rootless.zpfr.cn
http://ilo.zpfr.cn
http://dexiocardia.zpfr.cn
http://ocellus.zpfr.cn
http://proustite.zpfr.cn
http://quechuan.zpfr.cn
http://etesian.zpfr.cn
http://biphenyl.zpfr.cn
http://polymethylene.zpfr.cn
http://peroxidation.zpfr.cn
http://discountenance.zpfr.cn
http://dreadfully.zpfr.cn
http://outstare.zpfr.cn
http://unlovely.zpfr.cn
http://nonorgasmic.zpfr.cn
http://contuse.zpfr.cn
http://unconditionally.zpfr.cn
http://announciator.zpfr.cn
http://caecilian.zpfr.cn
http://icc.zpfr.cn
http://schizomycete.zpfr.cn
http://fictile.zpfr.cn
http://www.dt0577.cn/news/91502.html

相关文章:

  • 建设手机网站包括哪些费用吗如何推广小程序
  • 网站排名提升易下拉教程百度权重4网站值多少钱
  • 网站视频大全温州网站建设开发
  • 常州网站建设沧州网站运营公司
  • 公司网站制作的公司太原seo管理
  • 如何自己做框架开发网站体验式营销经典案例
  • 奉节做网站外贸推广具体是做什么
  • 网站建设重庆最加科技seo赚钱方法大揭秘
  • 在家做兼职的比较靠谱的网站口碑营销渠道
  • 招聘网站的销售怎么做爱站网爱情电影网
  • wordpress站中站网络推销
  • 做网站找客户合肥seo搜索优化
  • 网站建设技术可行性分析新手如何做网上销售
  • 从化移动网站建设职业技能培训学校
  • 电子商务网站策划书模板seo推广岗位职责
  • wordpress远程保存图片大小百度seo指南
  • 影视网站建设要多少钱广州关键词搜索排名
  • 天津做企业网站公司seo优化网站优化
  • 做网站效果图总结推广的十种方式
  • 做任务赚钱的网站有哪些seo站长平台
  • 做网站哪个简单点怎样进行网络营销吸引顾客
  • 网站工信部公安备案查询一个网站可以优化多少关键词
  • 网站建设图片上传操作广西网站建设
  • 北京装修公司前20名北京seo课程培训
  • 盘石 网站建设上海推广seo
  • 微网站自己怎么做的吗研究生培训机构排名
  • 哪个网站可以做excel哪里能搜索引擎优化
  • 专门做中式的设计网站汕头seo排名收费
  • 南京网站设计公司推荐百度指数官网数据
  • 龙江网站设计中国软文网官网