问题1:
    在一个含接口Runnable的类,定义run方法时,如果含有语句 Thread th = new Thread(this).start()会是什么结果,是不是要重新运行run()方法?那么现在的线程还存在吗??那么 Thread th = new Thread(this).start()后面的语句还会不会运行呢???
问题2:
    如果一个线程处于睡眠态,那它会不会受到键盘事件的响应呢???多谢各位大牛~~~~小弟新人刚学Java  

解决方案 »

  1.   

    Thread th=new Thread(this).start();//当前线程用JNI调用了C++的方法,当前线程继续往下执行,
    C++的方法就去在产生一个线程去执行th这个对象的run()方法,Thread没有被继承所以去掉了成员变量Runnable实现后的run()方法
      

  2.   

    要看线程是怎么睡的!如果设置时间则不需要唤醒,如果在睡的时间内,键盘事件是捕获不到的如果是直接th.sleep(),那么在另外一个线程捕获到键盘事件,然后唤醒这个线程,就可以了,如果没有去唤醒是不会有响应的个人意见,仅供参考,实际的还是debug一下比较好,或是使用日志来调试一下,没有日志的话用system.out.println()也可以
      

  3.   


    楼主可以看看JAVA的JDK文档,Thread th = new Thread(this).start()  这里有两个线程,括号里的可以是另个线程,这里有两个线程,它们会一起运行,
    2:处于休眠的话只有代码让它醒来了,