举例如下
如果在线程A里面调用线程B的wait()方法
那么线程A会等待线程B执行玩以后才会执行,请问时什么原因。
这就相等于调用了线程B的join()方法.
jion()方法的实现也是调用wait().
这时什么原理。
如果在线程A里面调用线程B的wait()方法
那么线程A会等待线程B执行玩以后才会执行,请问时什么原因。
这就相等于调用了线程B的join()方法.
jion()方法的实现也是调用wait().
这时什么原理。
解决方案 »
- jprofiler
- jTexaArea显示中文的问题
- 谁能帮小弟用JAVA写下冒泡法~多谢~
- 安装Java 完成以后 怎么配置它?
- 学习Java
- java的编译问题,父类更改,子类一定要重新编译吗?
- 蔡鸟一问
- jbuilder在linux中的作用?说说自己的看法
- 怎样用JBuilder 7编写用JDBC (for MS SQL 2000 )访问MS sql 2000 Server 的应用程序
- 为什么定时器没有执行呢?谢谢:)
- 紧急求救,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都会被唤醒,所以收到通知