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

做博客的网站网络营销策划方案范文

做博客的网站,网络营销策划方案范文,中国建设银行官网网站首页,网站开发项目经理在 Java 里,公平锁和非公平锁是多线程编程中用于同步的两种锁机制,它们的主要差异在于获取锁的顺序规则。下面是对二者的详细介绍: 公平锁 公平锁遵循 “先来先服务” 原则,也就是线程获取锁的顺序和请求锁的顺序一致。先请求锁…

在 Java 里,公平锁和非公平锁是多线程编程中用于同步的两种锁机制,它们的主要差异在于获取锁的顺序规则。下面是对二者的详细介绍:

公平锁

公平锁遵循 “先来先服务” 原则,也就是线程获取锁的顺序和请求锁的顺序一致。先请求锁的线程会优先获得锁,这样可以保证每个线程都有公平的机会获取锁,避免某个线程长时间等待。

不过,公平锁在实现公平性时会增加额外的开销,因为需要维护一个有序的等待队列。当一个线程释放锁后,会从队列头部选取下一个线程来获取锁。

非公平锁

非公平锁不保证线程获取锁的顺序和请求锁的顺序一致。当锁被释放时,任何等待的线程都有机会获取锁,而不考虑其请求的先后顺序。

非公平锁可能会让某些线程先于等待时间长的线程获取锁,从而产生 “饥饿” 现象,即部分线程长时间得不到锁。但非公平锁的性能通常比公平锁要好,因为它减少了线程上下文切换和等待队列管理的开销。

实现公平锁和非公平锁

在创建ReentrantLock时可以指定true或者false在指定公平或者非公平锁(ReentrantLock和Synchronized关键字默认是非公平锁),像下面这样

// 创建公平锁
Lock fairLock = new ReentrantLock(true);
// 创建非公平锁
Lock unfairLock = new ReentrantLock(false);

如下是测试ReentrantLock实现公平锁和非公平锁的代码

class Worker implements Runnable {private final Lock lock;private final String name;public Worker(Lock lock, String name) {this.lock = lock;this.name = name;}@Overridepublic void run() {for (int i = 0; i < 3; i++) {lock.lock();try {System.out.println(name + " 获得锁,正在执行任务 " + i);Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();} finally {lock.unlock();System.out.println(name + " 释放锁");}}}
}public class FairAndUnFair {public static void main(String[] args) {// 创建公平锁Lock fairLock = new ReentrantLock(true);// 创建非公平锁Lock unfairLock = new ReentrantLock(false);// 使用公平锁System.out.println("使用公平锁:");Thread t1 = new Thread(new Worker(fairLock, "线程1"));Thread t2 = new Thread(new Worker(fairLock, "线程2"));t1.start();t2.start();try {t1.join();t2.join();} catch (InterruptedException e) {e.printStackTrace();}// 使用非公平锁System.out.println("\n使用非公平锁:");t1 = new Thread(new Worker(unfairLock, "线程1"));t2 = new Thread(new Worker(unfairLock, "线程2"));t1.start();t2.start();}
}

在这个示例中,ReentrantLock构造函数的参数true表示创建公平锁,false表示创建非公平锁。

适用场景

  • 公平锁:适用于对公平性要求较高的场景,如任务调度系统,需要保证每个任务都能按顺序执行。
  • 非公平锁:适用于对性能要求较高,且对公平性要求较低的场景,如高并发的缓存系统。
http://www.dtcms.com/wzjs/143277.html

相关文章:

  • 西安可以做网站的长春网站优化方案
  • 太原怎样优化网站建设seo文章优化方法
  • 中山做外贸网站百度seo优化培训
  • 网站开发word建立营销型网站
  • 网站免费推广策划方案杭州优化公司哪家好
  • 图片网站怎么做优化微信小程序怎么制作自己的程序
  • 专业网站建设课程最新注册域名查询
  • 如何创建个人网站赚钱营销咨询公司
  • 网站开发学什么语言关键词代发排名首页
  • 金蝶财务软件官网首页烟台seo关键词排名
  • 做课件的软件下载带有蓝色的网站学开网店哪个培训机构好正规
  • 上海大型网站建设网站设计公司报价
  • 动态网站开发工具线上推广有哪些渠道
  • 电商网站建设企业2345网址导航桌面版
  • wordpress禁止缩略图关键词优化哪家好
  • 什么公司做网站最好桂林市天气预报
  • 美国做deals的网站百度下载免费官方安装
  • 网站后台html模板长沙seo优化排名
  • 做网站要在vs安装什么站长工具查询网站
  • 四川省人民政府服务热线seo专员招聘
  • 深圳建西站国际购物网站平台有哪些
  • 网站优化排名怎么做百度引擎
  • 网站做一样算不算侵权百度知道合伙人答题兼职入口
  • 做跨境电商看国外的哪些网站北京建站
  • 中国有几大建设关键词优化按天计费
  • 做网站前怎么写文档网站建设网络营销
  • 网站整体风格百度百度一下就知道
  • 企业网站互动交流模块百度地图导航2022最新版
  • wordpress的登录界面优化排名推广技术网站
  • 在线教育做网站好还是app好企业网站优化方案案例