最新文章列表

java concurrent (1) - 传统线程互斥和通信

线程互斥是一次只有一个线程执行某段代码,保证数据的一致性。线程通信是指通过notify或notifyAll来唤醒在wait某个对象锁的线程。实现方式是通过synchronized关键字声明。 1. 如果同步代码块在对象方法中,可以实例化一个Object来作为lock的对象,或者用this关键字表示lock这个对象: synchronized(obj) { // code block ...
czj4451 评论(0) 有1923人浏览 2012-04-19 13:40

学到多线程这块,个人对wait和notify的理解

  这两天在学多线程这块,对wait和notify感觉有点模糊,所以发帖求证下,下面的是我看资料后的个人总结,有什么问题的,希望大家指导下,多谢了   1、  首先,这三个方法是在Object的类下的,不是在Thread的类中的。所以,这三个方法表示的是java类所具有的本身的行为,不是多线程下的特性。 2、  JVM会给每一个对象都分配唯一的一把锁。这把锁是在对象中的。获得这把锁的前提是 ...
evilgod528 评论(0) 有1079人浏览 2012-03-28 20:19

wait(),notify(),notifyAll()

wait(),notify(),notifyAll()不属于Thread类,而是属于Object基础类,也就是说每个对像都有wait(),notify(),notifyAll()   的功能.因为都个对像都有锁,锁是每个对像的基础,当然操作锁的方法也是最基础了.   先看java doc怎么说:   wait导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyA ...
xiewenbo 评论(0) 有1395人浏览 2011-12-08 20:16

为什么JAVA要提供 wait/notify 机制?是为了避免轮询带来的性能损失

原文:http://www.cnblogs.com/rongxh7/archive/2010/04/11/1709333.html   我好土,真的。学用了四五年的JAVA,还从没用过 wait/notify,也不清楚它跟synchronized 关键字 相比有什么好处。今天查了些资料,终于明白了:wait/notify  机制是为了避免轮询带来的性能损失。     为了说清道理,我们用“ ...
yinhe2726 评论(0) 有1542人浏览 2011-11-24 01:14

Java线程wait-notify+sleep+synchronized

1.sleep-wait-yield区别 sleep是Thread类中的一个静态方法,其定义如下,   public static void sleep(long millis)throws InterruptedException 在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响,如果指定睡眠的时间到达,则从阻塞状态转变成就绪状态,等待运 ...
yuyiming1986 评论(0) 有6219人浏览 2011-11-21 20:40

JAVA多线程同步

1  wait方法:        该方法属于Object的方法,wait方法的作用是使得当前调用wait方法所在部分(代码块)的线程停止执行,并释放当前获得的调用wait所在的代码块的锁,并在其他线程调用notify或者notifyAll方法时恢复到竞争锁状态(一旦获得锁就恢复执行)。        调用wait方法需要注意几点:        第一点:wait被调用的时候必须在拥有锁(即sync ...
liujing1961 评论(0) 有973人浏览 2011-11-15 14:22

Java线程中sleep()、wait()和notify()和notifyAll()、yield()、join()等方法的用法和区别

Java线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别 从操作系统的角度讲,os会维护一个ready queue(就绪的线 ...
zheng12tian 评论(0) 有12050人浏览 2011-11-03 17:19

Java之synchronized,wait,notify结合运用示例

场景一:要求二个线程各自运行,中间不产生交互行为,等一个方法运行完了,在运行另外一个方法 public class SweetheartsTest { public static void main(String[] args) ...
liuzidong 评论(0) 有5939人浏览 2011-10-26 11:54

java多线程设计模式(5) wait/sleep的区别

前面讲了wait/notify机制,Thread还有一个sleep()静态方法,它也能使线程暂停一段时间。sleep与wait的不同点是:sleep并不释放锁,并且sleep的暂停和wait暂停是不一样的。obj.wait会使线程进入obj对象的等待集合中并等待唤醒。 但是wait()和sleep()都可以通过interrupt()方法打断线程的暂停状态,从而使线程立刻抛出InterruptedE ...
webgdi 评论(0) 有772人浏览 2011-10-13 17:30

java多线程设计模式(4) wait/notify机制

通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。 以上逻辑简单的说就 ...
webgdi 评论(0) 有514人浏览 2011-10-13 17:29

Java之线程(synchronized,wait(),notify(),notifyAll())

参考资料 Java多线程入门大全(适用于有一定基础者) http://www.chinaitpower.com/A/2002-04-09/19260.html Java多线程sleep(),join(),interrupt(),wait(),notify() http://www.blogjava.net/fhtdy2004/archive/2009/06/08/280728.html JAVA多线 ...
liuzidong 评论(0) 有3256人浏览 2011-10-10 15:03

Java面试问题之四十六

请问在Java中notify()和notifyAll方法有什么区别? 答:Java中notify()和notifyAll()方法的主要区别在于:notifyAll()方法会使原来在某个对象等待池中的线程全部退出wait状态,进入该对象的锁池中,一旦该对象的锁被释放,它们会竞争获取对象的锁。相比之下,notify()方法只会随机选择一个处于wait状态的线程进行唤醒,使这个线程进入该对象的锁池中,当 ...
YuHuang.Neil 评论(0) 有930人浏览 2011-10-01 12:43

Java面试问题之四十三

请问Java有哪些方法用于线程的通信? 答:java.lang.Object类中提供了两个用于线程通信的方法:      (1)wait()方法,执行该方法的线程释放对象的锁,Java虚拟机把该线程放到该对象的等待              池中。该线程等待其他线程将它唤醒。      (2)notify()方法,执行该方法的线程唤醒在对象的等待池中等待的一个线程。Java虚拟机          ...
YuHuang.Neil 评论(0) 有504人浏览 2011-09-26 22:59

线程笔记(wait,notify,notifyAll)

我们先看看代码片段,有点类似生产者-消费者模型中的生产者的逻辑代码。 public synchronized void push(Object obj){ while( condition ){ try{ this.wait(); //等待,直到有数据出栈 }catch( ...
stone2oo6 评论(0) 有1968人浏览 2011-07-06 22:35

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics