举例如下
如果在线程A里面调用线程B的wait()方法
那么线程A会等待线程B执行玩以后才会执行,请问时什么原因。
这就相等于调用了线程B的join()方法.
jion()方法的实现也是调用wait().
这时什么原理。
如果在线程A里面调用线程B的wait()方法
那么线程A会等待线程B执行玩以后才会执行,请问时什么原因。
这就相等于调用了线程B的join()方法.
jion()方法的实现也是调用wait().
这时什么原理。
解决方案 »
- 求教大伙个小问题,关于BigDecimal类的divide()..................
- 还是求Java api 英文版文档
- 求java.net.SocketException: Connection reset解决办法
- 引入几个类的问题
- 这2段代码有啥区别?
- JFrame改变大小后触发了什么事件?应该执行什么接口?
- 关于实例的定义问题
- 请问 String host 是(如 www.sina.com.cn )吗 有192.9.200.250 怎么产生 intAddress
- 程序员年龄调查,及今后的发展方向。
- 谁能告诉我哪能下载jdk1.4和jbuilder!!
- 紧急求救,js调用applet实现的打印功能进行打印时找不到任何print service,细节请看内容,能解决者200分相送!!!!!!
- 推荐使用Flash Get下载,限制线程
所以无论是什么对象调用,都一样啦。
jion()也是final方法,让所以调用jion()的方法都放在同一个等待队列里面。
它又不是static 怎么能谁调用都一样呢?
晕
请看下面的代码
class A extends Thread{
B b ;
A(B b){
this. b =b;
}
public void run(){
b.wait();
跟
synchronized(this){
wait();怎么能一样?????
}
}
}
class A extends Thread{
B b ;
A(B b){
this. b =b;
}
public void run(){
synchronized(b){
b.wait();
}
跟
synchronized(this){
wait();怎么能一样?????
}
}
}
B 是另外一个线程
2. join也不和wait一样,它不会在调用notify的时候唤醒
所以你的理解是错误的
再说了你可以看一下join()方法的实现它其实调用的就是wait()方法
我不知道这是什么原因。
照里说wait()要么时间到了,要么被notify()
不过这个也很好解释啊,在线程退出的时候在内部自动会调用notifyAll方法,所以你的程序无论是调用了wait还是join都会被唤醒,所以收到通知