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

四川专业网站建设/googleplay

四川专业网站建设,googleplay,日本软银集团董事长,哈密做网站原文地址,译文地址,译者:李任,郑旭东 校对:蘑菇街-小宝 一个并发应用程序能及时执行的能力称为活跃性。本节将介绍最常见的活跃性问题:死锁(deadlock),以及另外两个活跃性…

原文地址,译文地址,译者:李任,郑旭东 校对:蘑菇街-小宝

一个并发应用程序能及时执行的能力称为活跃性。本节将介绍最常见的活跃性问题:死锁(deadlock),以及另外两个活跃性问题:饥饿(starvation)和活锁(livelock)。

死锁

原文地址

死锁描述了这样一种情景,两个或多个线程永久阻塞,互相等待对方释放资源。下面是一个例子。

Alphone和Gaston是朋友,都很讲究礼节。礼节有一个严格的规矩,当你向一个朋友鞠躬时,你必须保持鞠躬的姿势,直到你的朋友有机会回鞠给你。不幸的是,这个规矩没有算上两个朋友相互同时鞠躬的可能。

下面的应用例子,DeadLock,模拟了这个可能性。

01    static class Friend {
02         private final String name;
03         public Friend(String name) {
04             this.name = name;
05         }
06         public String getName() {
07             return this.name;
08         }
09         public synchronized void bow(Friend bower) {
10             System.out.format("%s: %s"
11                 "  has bowed to me!%n",
12                 this.name, bower.getName());
13             bower.bowBack(this);
14         }
15         public synchronized void bowBack(Friend bower) {
16             System.out.format("%s: %s"
17                 " has bowed back to me!%n",
18                 this.name, bower.getName());
19         }
20     }
21 
22     public static void main(String[] args) {
23         final Friend alphonse =
24             new Friend("Alphonse");
25         final Friend gaston =
26             new Friend("Gaston");
27         new Thread(new Runnable() {
28             public void run() { alphonse.bow(gaston); }
29         }).start();
30         new Thread(new Runnable() {
31             public void run() { gaston.bow(alphonse); }
32         }).start();
33     }
34}

当DeadLock运行后,两个线程极有可能阻塞,当它们尝试调用bowBack方法时。没有哪个阻塞会结束,因为每个线程都在等待另一个线程退出bow方法。

饥饿和活锁

原文地址

饥饿和活锁并不如死锁一般普遍,但它仍然是每个并发程序设计者可能会遇到的问题。

饥饿

饥饿是指当一个线程不能正常的访问共享资源并且不能正常执行的情况。这通常在共享资源被其他“贪心”的线程长期时发生。举个例子,假设一个对象提供了一个同步方法,这个方法通常需要执行很长一段时间才返回。如果一个线程经常调用这个方法,那么其他需要同步的访问这个对象的线程就经常会被阻塞。

活锁

一个线程通常会有会响应其他线程的活动。如果其他线程也会响应另一个线程的活动,那么就有可能发生活锁。同死锁一样,发生活锁的线程无法继续执行。然而线程并没有阻塞——他们在忙于响应对方无法恢复工作。这就相当于两个在走廊相遇的人:Alphonse向他自己的左边靠想让Gaston过去,而Gaston向他的右边靠想让Alphonse过去。可见他们阻塞了对方。Alphonse向他的右边靠,而Gaston向他的左边靠,他们还是阻塞了对方。

文章转自 并发编程网-ifeve.com

http://www.jmfq.cn/news/5006827.html

相关文章:

  • 有人做网站花了10几万/seo优化的常用手法
  • dnf做任务解除制裁网站/视频号广告推广
  • 个人物流网站建设方案/大数据分析网站
  • 龙华建设网站/网站怎么接广告
  • 汕头制作企业网站/网站推广120种方法
  • 太原做响应式网站设计/电商代运营公司100强
  • 网站建设流程报价/免费发广告的平台有哪些
  • 网站建设教程搭建湖南岚鸿/网页设计代码
  • 自己做的网站如何管理/企业培训体系搭建
  • 网站建设微信托管/抖音seo是什么
  • 综合性门户网站有/淄博网站seo
  • 团购网站建立/免备案域名
  • 企业网站需要备案吗/云计算培训费用多少钱
  • 阳江招聘网站哪个靠谱/营销传播
  • 万荣做网站/百度竞价广告收费标准
  • 为什么wordpress打不开/整站优化方案
  • 住房和城乡建设部网站第九批/北京、广州最新发布
  • 松滋做网站/网站优化推广招聘
  • 域名有了怎么做网站/磁力蜘蛛搜索引擎
  • 南宁网站制作多少钱/陕西新闻今日头条
  • 咸阳个人兼职网站建设/免费制作小程序平台
  • 福田外贸网站建设/南宁百度seo建议
  • 怎么样做外链推广网站/seo排名软件
  • 凡科怎样免费做网站/软文推广发稿
  • 网站标题怎么做/seo关键词是什么
  • 南通网站设计/廊坊seo优化排名
  • 用python做网站开发的课程/排名优化培训
  • 做本地网站赚钱吗/国家卫健委:不再发布每日疫情信息
  • 网页制作与设计发展现状/西安seo培训学校
  • 做网站搞个物理服务器/友情链接有哪些展现形式