"A Sleeping thread passes time without doing anything and without using the CPU"---Complete Java 2 Certification Study Guide (page.172)
解决方案 »
- 如何将加密后字符串转换成 对应的数字字符串(不影响解密)
- java 中的substring问题?
- 用java编写了几个类,这几个类配合完成一个流程,我想测试一下这个流程,请问有什么好的测试工具吗?junit 好像只能对一个类进行测试
- 我用JAVA模仿WINDOWS的扫雷,请大家评价 ^_^
- 有个.bat的小问题?
- JTree的小问题(50分)在线等
- [请教]Window 和 Solaris 环境下 Java 界面程序的中文显示问题.
- 编程中的问题,请教高手,120!
- 各位 你们操作记录集的时候是用ResultSet来返回还是用其他方法?
- win8.1系统安装JDK 8u25 windows x64时出现内部错误
- #####################很急!!!!!请高手们都来帮帮我!套接字产生的DataOutputStream,在通信时会莫名其妙的被堵死????##########
- 这个错误怎么办?
怎么可能把资源释放!!只是让它暂时休息,需要时激活!!!
不懂就不要瞎讲。你难道看不懂英文?我不认为内存比cpu 更值得关注。
“只是让它暂时休息,需要时激活“------这句话也是错的。
对于sleep()方法而言,不是时间到了线程就会继续执行的,
”when the thread has finished sleeping ,it does not continue execution.As you would expect.it enters the Ready state and will only execute when the thread scheduler allows it to do so .----用不用我告诉你什么是the Ready state ?
不是内存是否被释放的问题。这是跑题。
内存是否被释放的问题是一个java初学者该了解的东西。也是初学者不用去理会的东西。
内存是否被释放的问题应该由garbage collection 来解决(事实上这是自动的).
因为,内存资源中保存着这个线程的上下文,如果这些内存资源被释放,那么这个线程就无法再次被恢复(唤醒)。
线程是被外界唤醒的,因此线程在sleep时,完全不占用CPU资源。至于所占用的内存资源是否被放到硬盘,取决于操作系统的内存调度,而不是由JVM控制的。
同步问题能让你对内存偷偷的干什么?你能做得充其量就是优化。
另外,不要用同步唬人。同步不是为了内存对象。同步的最终目的是充分利用cpu资源。你得好好看书。
cpu,和内存那个更值钱呢?你可你多家几个内存条。当然你也可以多家几个cpu。
最好不要用扇热不好的。
to knfy(苏格拉顶)
学术讨论而已
{
new thread1().start();
new thread2().start();
new thread3().start();
}
}
*************public class thread1 extends Thread{}
*************public class thread2 extends Thread{}
****************public class thread2 extends Thread{ ... public void run()
{
while(true)
{
try{sleep(TIME);}catch(IOException e){}
...
}
}
} 此程序是实现移动目标和数据处理中心的通信。
其中thread1,thread2来实现和数据处理中心的通信,thread3来实现对连接在计算机串口上的无线数据猫的操作,用数据猫来向移动目标发送短消息和接受从移动目标发来的短消息。
在线程3中,如果TIME为100时,程序正在执行的时候可能耗尽资源而毫无征兆的不再运行,停止了。这个停止还不是所谓的正常的停止,或者异常使程序结束了,编译器显示的是程序正在执行,但是本应该继续输出结果的,却不再输出。但如果是把TIME 设置为1000时,程序就一切正常,即使运行很长时间也不会有问题。