1.sleep()时,cpu的时间片分给该线程后,cpu会怎么办?
wait()时,cpu会怎么处理?
2.InterruptedException,api上说“如果任何线程中断了当前线程”
interrupt(),api上说“测试当前线程是否中断”。他们和sleep()是什么关系?
3.sleep和interrupt相对应,wait和notify相对应,可否这样理解?
wait()时,cpu会怎么处理?
2.InterruptedException,api上说“如果任何线程中断了当前线程”
interrupt(),api上说“测试当前线程是否中断”。他们和sleep()是什么关系?
3.sleep和interrupt相对应,wait和notify相对应,可否这样理解?
解决方案 »
- 在Java Swing中,如何做一个可用鼠标拖动改变内部面板大小的JFrame
- 一个父类的方法如何不让子类修改?
- 谁有SWT Designer 6.0,现在的高版本下不到注册机,帮帮忙
- jni应用中如何在C程序里返回一个自定义的类型
- 实际java开发中你们使用哪一种数据库系统?急盼
- 为什么我调试跟踪入jdk1.4里的src.zip的源代码时,该类里的变量值不能得到,怎么办?
- 错误: 找不到或无法加载主类 com.lin.BorderTest 求解决办法
- 那位大哥配置过"洋溢论坛",我设置了数据源,把yy目录也加到了classpath..并且把forum整个目录放在以tomcat的webapps下...可是通过http://l
- 我看的书上的例子,为什么comp2D.drawString(.......什么也不显示,我到命令行,java ...由提示没有main() ?
- 传递错误信息,大家一般用什么模式来作呢?谢谢
- 希望各位好友在百忙之中看下小弟的这个Java问题
- 关于HttpClient请求https网页???
sleep()随眠时cpu会去处理其他线程但不会释放锁而wait()会
interrupt()这种方法用于在线程sleep()时中断线程
sleep和interrupt相对应,wait和notify相对应可以这么说
只能wait和notify、notifyAll对应
wait时,cpu也会分配给其他线程运行,
sleep和wait都会使线程进入阻塞状态
2.interrupt是中断线程的方法,若线程没有进入阻塞状态,调用interrupt方法只会改变该线程的中断状态,不会抛出InterruptedException,而若线程被sleep(),wait(),join()方法阻塞,调用interrupt()方法时,会抛出InterruptedException
3.wait()和notify()对于,sleep()和interrupt()则不对应
这是我的理解
从jdk 1.5开如Thread.State内部类定义了线程的六种状态NEW,RUNNABLE,BLOCKED,WAITING,TIMED WAITING,terminated,
可以能过Thread类的getState() 方法获取
1 处于sleep()方法的线程,所处状态是TIMED_WAITING,不带参数的wait()方法使线程处于waiting状态
记得只有处于Runnable状态的线程才有机会获得cpu时间片
2 如果本线程处于sleep(),join(),wait()方法时,如果其他线程获得了本线程的引用并调用interrupt() 方法,这时本线程的中断标志会被清除,并在本线程产生一个InterruptedException.
如果本线程并没有处于以上那些方法中,其他线程获得本线程引用并调用interrupt()方法本线程的中断标志会是true.
可以在一个while循环中不断地检测本线程的中断标志,这样是和其他线程交互的方法之一.静态方法interrupted()和非静态方法isInterrupted()都可以检测当前的中断标志,区别是静态方法会清楚中断标志
3 就像4楼说的,sleep()与interrupt()是有一些关系,但和wait ,notify之间的关系是不同的
多线程如果说难是因为它相当于一门新的语言,你无法用简单的模型和它对应.
说它容易是因为,如果你用心去考虑下,这个概念还是容易理解的