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

有关java线程方面的问题,请高手帮忙

    来源: 互联网  发布时间:2015-05-10

    本文导语:  下述错误是什么原因? java.lang.IllegalMonitorStateException: current thread not owner         at java.lang.Object.notify(Native Method)         at Downloader.resumeDownload(Downloader.java:194)         at DownloadManager$4.actionPerformed(Down...

下述错误是什么原因?
java.lang.IllegalMonitorStateException: current thread not owner
        at java.lang.Object.notify(Native Method)
        at Downloader.resumeDownload(Downloader.java:194)
        at DownloadManager$4.actionPerformed(DownloadManager.java:122)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
67)
        at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
ctButton.java:1820)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:419)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257
)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:258)
        at java.awt.Component.processMouseEvent(Component.java:5021)
        at java.awt.Component.processEvent(Component.java:4818)
        at java.awt.Container.processEvent(Container.java:1380)
        at java.awt.Component.dispatchEventImpl(Component.java:3526)
        at java.awt.Container.dispatchEventImpl(Container.java:1437)
        at java.awt.Component.dispatchEvent(Component.java:3367)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3214
)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2929)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2859)
        at java.awt.Container.dispatchEventImpl(Container.java:1423)
        at java.awt.Window.dispatchEventImpl(Window.java:1566)
        at java.awt.Component.dispatchEvent(Component.java:3367)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:190)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:144)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
我感觉是线程不对,
这是一个下载器,在暂停的代码里面,
            //暂停按钮的事件定义
  suspendButton = new JButton("Suspend");
  suspendButton.setEnabled(false);
  suspendButton.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent event){
  suspendButton.setEnabled(false);
  resumeButton.setEnabled(true);
  stopButton.setEnabled(true);
  downloader.setSuspended(true);
  }
  });
  innerPanel.add(suspendButton);
  //恢复继续按钮的事件定义
  resumeButton = new JButton("Resume");
  resumeButton.setEnabled(false);
  resumeButton.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent event){
  resumeButton.setEnabled(false);
  suspendButton.setEnabled(true);
  stopButton.setEnabled(true);
  downloader.resumeDownload();
  }
  });
  innerPanel.add(resumeButton);
      //下面是恢复继续按钮的事件。
  public void resumeDownload(){
  //setSuspended(false);
  this.notify();
  }
  //下面是总处理(判断当前状态的)里面的片断
                  /*
   * For DownloadManager.class
*/
  synchronized(this){
  if(isSuspended()){
  try{
  this.wait();
  setSuspended(false);
  }catch (InterruptedException ie){
  setStopped(true);
  break;
  }
  }
  }
可能是this引起的,我不清楚有关线程的问题,刚接触啊!
请各位帮帮忙。
如果需要源码请留下mail。

|
直接调用object.notify()or wait()等方法便会抛出如上异常。

要挂起或唤醒线程可参照如下方法:
假设存在线程threadA,方法funcA();要在threadA调用funcA()时让threadA等待,funcA()可这样定义:
void funcA() {
    wait();
}
这样,谁调用funcA()谁便会挂起。
notify(),notifyAll()也是如此使用。

//广告
//oop.51.net上面有我写的吃豆子源码下载。
//采用了多线程,有挂起、唤醒等此类代码。

|
不了解你的源代码,试试下面:
  public synchronized void resumeDownload(){
                if(!isSuspended()){
                      this.notifyAll();
                      setSuspended(true);
                }
  }

|
我感觉不一定是向Object类,而是始终向上扩展,最终到达错误的根源
比如OutofBounds异常,
如果你用数组超界了,就会出现这种异常,它在Array中抛掷的
所以首先出现Array类的Index OutofBounds
然后到你自己定义的类中YourClass.CallArrayMethod(调用Array的函数)
最后才到你写的出错的那句话,比如array[100]不存在的一个

|
wait(), notify(), notifyAll()
必须在同步块中才能调用。否则线程就没有Moniter owner,必然会出IllegalMonitorStateException。
只有被同步的程序块才有锁,有锁才有Moniter owner,才能wait(),否则没有意义。

    
 
 

您可能感兴趣的文章:

  • 有关线程创建的问题
  • 请解释一下有关线程的这个问题!
  • 有关Linux下开发程序--上万个线程问题。菜鸟问(来者有分,谢谢大家)
  • 请教有关线程返回值的问题
  • 帮忙怎样写有关 unix下的线程的问题(在线等待,急用,谢谢)
  • 有关不同线程同时访问同一公共Vector变量的问题(欢迎讨论)
  • 初来乍到,有关多线程的一个问题,
  • 有关编译线程代码时出现的一些错误提示。。
  • 求助:推荐LINUX有关进程、线程方面讲的比较好的书(用户态的)
  • 有关线程退出的问题
  • 有关线程的一些数据结构及函数求教。。
  • linux 能开的 最大 线程 和 进程 数 和什么有关?
  • 有关java多线程的问题,闲人免进。
  • 请帮我看一下程序,有关多线程
  • 有关线程内存分配的问题
  • 急,在线等待,有关多线程applet的问题
  • 满分跪求解决方法:有关linux多线程问题.....
  • 求助:有关linux下的线程编程问题-生产者消费者问题
  • 请教有关英文简历方面的词句!
  • 在哪里可以弄到有关tomcat配置方面的资料?
  • 请教有关手机方面的问题
  • 有关java书籍方面的
  • 有关linux方面的问题请教
  • 请教一个有关socket方面的问题
  • 有关plc通信方面的书籍请大侠推荐几本
  • 有关 AIX 编程兼容性方面的疑问
  • 请教几个有关Java方面的问题?
  • 有关linux平台下的数据库方面?
  • 有关shell编程方面的问题
  • 有关rpm方面的问题
  • 求有关socket等通讯方面的源代码,以供参考,希望大家帮帮我!谢谢
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 有关DNS的编程问题,请高手帮忙!
  • 请帮忙,有关cvs check out的问题
  • 请大家帮忙看一下有关ResultSet的问题.
  • 有关NETWare的填空题,怎么回答,帮忙了!!!!!!!
  • 各位大虾帮帮忙,急!!!——有关字节对齐问题
  • 有关date 问题的一个疑问。 。 还望各位帮帮忙!!
  • 有关Applet启动时的问题?请大虾帮忙
  • 一个可能是有关CLASSPATH的问题,请各位帮忙(在线等待)
  • JSP中有关点击链接出现小窗口的问题?做过的请帮忙啊!
  • 请问一个有关包的编译问题!请大家帮忙!
  • 有关cvs的问题,大家一定要帮忙啊。。。
  • 有关cvs登陆的问题!请帮忙看看,谢谢!
  • 有关linux gdb 调试问题! 高手帮忙 No symbol "*" in current context
  • 两个可能与jdk版本有关的问题,请大家帮忙。
  • 有关JBuilder6.0的问题(有请高手帮忙),在线等待,高分相送,谢谢
  • 有关fgets()的问题。。。。。。大家帮帮忙啊
  • *. 有个Bug始终未解决:是有关文件读写的:不知道是怪异还是。。。哎,有人摸索出了帮忙回答下
  • 有关JAVASCRIP的问题.(急呀!!!请各位大虾帮忙)
  • 各位高手请多多帮忙,公司要的实在太紧,有关Jsp+servlet+ejb+sql的问题。高分
  • 请高手帮忙调试这个有关RMI的程序!!!!!!
  • ​有关Docker的八个令人难以置信的事实
  • 有关内码转换(跟HttpServletRequest有关)
  • 求有关png图像处理的libpng库的有关中文资料
  • 大家推荐一下有关LINUX7有关的网络编程的书。最好是比较全面的!比较经典的。
  • 求教有关smartupload的问题,有关就给分!!
  • 有关KDevelop-3.0.4-0.1.i386.rpm的有关软件包
  • 有关在sco unix5.0.4下有关网卡设置的问题(非常急,高分相送)
  • 有关snmp的一个很菜,但是困扰了我很久的问题,有关工作原理的,望大家赐教
  • 有关KDevelop编程的资料
  • 有关集群与数据同步
  • 有关报表打印(在JAVA,WEB下应用)急用!


  • 站内导航:


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

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

    浙ICP备11055608号-3