当前位置:  技术问答>java相关

自己写咳一小段测对象lock的片断,可是怎么不能正常运行,高手指点。。

    来源: 互联网  发布时间:2015-07-30

    本文导语:  public class temp{ int num; boolean canReceive=false; public synchronized void receive(){ while(canReceive==false){ try{ wait(); }catch(InterruptedException e){} } System.out.println("receive num= "+num); canReceive=false; notify(); } public syn...

public class temp{
int num;
boolean canReceive=false;
public synchronized void receive(){
while(canReceive==false){
try{
wait();
}catch(InterruptedException e){}
}
System.out.println("receive num= "+num);
canReceive=false;
notify();

}

public synchronized void send(){
while(canReceive==true){
try{
wait();
}catch(InterruptedException e){}
}
System.out.println("produce num");
// try{
// Thread.sleep(500);
// }catch(InterruptedException e){}
num++;
canReceive=true;
notify();
}

public static void main(String args[]){
temp t=new temp();
t.receive();
//t.send();
}
}

|
当然了,这是在一个线程里啊,怎么解锁?

|
首先你的程序是不会正确执行的,永远会是在 receive 中的 while 中。 
请你将receive 和 send 写到两个独立的 runable 里。 canReceive 写到一个公共的static 变量中才可以。

可以参考一下 经典的生产者消费者的问题。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问:能不能动态的运行时生成对象(动态定义对象), 要涉及到哪些技术, 反射,序列化...??
  • 如何在运行时返回对象的方法并绑定其操作?
  • JSP运行原理和九大隐式对象说明
  • 在线等待!!!请教各位同仁,获得当前程序运行时间的对象和方法是什么?
  • Python namedtuple对象json序列化/反序列化及对象恢复
  • jquery对象和javascript对象即DOM对象相互转换
  • c#对象中两种copy操作:深拷贝(Deep Copy)与浅拷贝(Shallow Copy)
  • 请问如何把StringBuffer 的对象转化成一个InputStream 的对象,或者InputStream 子类的对象也可以!
  • c++类对象数组初始化方式
  • 判断一个对象是否为jquery对象的方法
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例
  • Glib对象系统(也称为"GObject")内部是如何实现面向对象特征的呢?
  • c++类对象初始化方式
  • 用RMI进行远程对象调用的时候,可不可以实现多个调用远程对象的并发操作
  • java tomcat实现Session对象的持久化原理及配置方法介绍
  • 你们看是不是可以这样理解:在用来进行两个对象的比较时,==操作符用来比较两个对象的引用地址,而equals()用来比较两个对象的值。
  • 将ResultSet结果集中的记录映射到Map对象中
  • 重新编译PLSQL中的无效对象或者指定的对象 的方法
  • php 5.5.14数据对象(PDO)介绍及PDO的预定义常量介绍
  • jquey笔记之dom对象与jquery对象互换的例子
  • linux iis7站长之家
  • 写一个方法,向它传递一个对象,循环打印出对象层次结构中的所有类?thinking in java里面的一个习题不知道如何做请教高手?
  • “当某个实例不再被任何对象引用时就会被垃圾回收机制回收”,那么怎样才算是不被任何对象引用呢?
  • 我的APPLET在Jbuilder5中,可以调用EJB对象,但是移植到网页上却不能调用EJB对象!是何缘故,值得研究!
  • 各位高手知道在JAVA中如何用一个名称创建一个对象实例,并调用其方法,注意:在编写代码时并不知要创建的对象的类名,也并不知方法名


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3