21.3 共享受限的资源

原创 2016年06月01日 20:46:47

21.3.1 不正确的访问

当有两个或更多的任务竞争响应某个条件,产生冲突或不一致结果

21.3.2 解决共享资源竞争


java提供了关键字synchronize来保护代码片段,当任务要执行被synchronize关键字保护的代码片段的时候,它将检查锁是否可用,然后获取锁,执行代码,释放锁。

当在对象上调用器任意synchronize方法时候,此对象都被加锁,这时对象上的其他synchronize方法只有等前一个方法调用完毕并释放锁之后才能被调用。


使用并发是,将域设置为private是非常重要的,否则,synchronize关键字就不能防止其他任务直接访问域,就会产生冲突。


一个任务可以多次获得对象的锁。


2.解决的方法是显示的Lock对象

private Lock lock=new ReentranLock();


  lock.lock();

 lock.unlock();

在lock与unlock之间创建了临界资源,使用lock对象是,



共享受限资源

你可以把单线程程序当作在问题域求解的单一实体,每次只能做一件事情。因为只有一个 实体,所以你永远不用担心诸如“两个实体试图同时使用同一个资源”这样的问题,比如: 两个人在同一个地方停车,两个人同时...
  • u011282083
  • u011282083
  • 2013年08月29日 13:33
  • 336

Java并发之共享受限资源

当使用多线程时,多个线程之间彼此相互干涉的问题也就出现了。比如多线程爬虫时,多个线程同时维护一个uri队列,这样就可能会存在冲突。例如线程A准备取uri_a,但是线程B突然就抢走了uri_a,再比如线...
  • u010853261
  • u010853261
  • 2016年12月27日 23:58
  • 558

Java多线程共享受限资源

一、多线程并发问题 所谓的多线程并发问题,就是在多线程的情况下,一个任务对共享数据操作的中间状态暴露给其他任务。即在一个线程的任务中,会对一个多线程共享的数据进行操作,在操作完成之前,对数据的更改对其...
  • fso918
  • fso918
  • 2013年12月18日 14:31
  • 1414

java线程共享受限资源 解决资源竞争 thinking in java4 21.3

java线程共享受限资源 解决资源竞争 详细介绍请参阅:thinking in java4 21.3 thinking in java 4免费下载:http://download.csdn.net/...
  • liangrui1988
  • liangrui1988
  • 2014年07月09日 00:34
  • 1280

java多线程系列----------- 共享受限资源(一)

可以把单线程程序当作在问题求解域求解的单一实体,每次只能做一件事。因为只有一个实体,所以永远不用担心诸如“两个实体试图同时使用一个资源”这样的问题——比如,两个人在同一个地方停车,两个人同时走过一扇门...
  • zhoupenglei
  • zhoupenglei
  • 2015年05月25日 08:48
  • 370

java多线程系列----------- 共享受限资源(二)

有时,只是希望防止多个线程同时访问方法内部的部分代码而不是防止访问整个方法。通过这种方式分离出来的代码段被称为临界区(critical section),它也使用synchronized关键字建立。这...
  • zhoupenglei
  • zhoupenglei
  • 2015年05月26日 09:42
  • 264

Java编程思想 之 共享受限资源

并发程序可以同时做多件事情,但是, 两个或多个线程彼此互相干涉的问题也就出现了。以下例子出自>一书的并发部分....
  • u013096145
  • u013096145
  • 2015年12月04日 14:46
  • 284

Java并发(2) 共享受限资源

2. 共享受限资源 2.1
  • liuyanggofurther
  • liuyanggofurther
  • 2014年10月05日 11:04
  • 483

初阶并发编辑之——共享受限资源

不正确的访问资源   我们先看一个例子:class addOne implements Runnable{ private static int value=0; @Override ...
  • qq_33667439
  • qq_33667439
  • 2017年12月14日 22:04
  • 30

漫谈并发编程(三):共享受限资源

解决共享资源竞争 一个不正确的访问资源示例      考虑下面的例子,其中一个任务产生偶数,而其他任务消费这些数字。这里,消费者任务的唯一工作就是检查偶数的有效性。      我们先定义一个偶数生成器...
  • Troy__
  • Troy__
  • 2014年10月29日 20:03
  • 1370
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:21.3 共享受限的资源
举报原因:
原因补充:

(最多只允许输入30个字)