用一个线程专门用于等待短信,一收到短信就创建一个线程用于处理逻辑,这个线程运行完之后就over了,不会再占资源的,占资源的是那个等待线程
解决方案 »
- 希望大家能帮我一下关于在linux里运行java程序的迷惑,谢谢了
- "=="与“equals()”的区别
- JAVA怎么去除网页中含有某关键词的一行内容除掉?
- 请问我登录数据库时的错误
- 什么时候需要自定义Exception
- 用UIManager.setLookAndFee怎么重新选择界面风格的,哪位大虾给段代码示范示范。。。
- JDOM的文档在哪里下载?请给具体连接地址。还有,是否总是使用JDOM代替DOM?
- 介绍一个超级好的电子书网站
- scjp考题一道!!!!!!!!!!!!!!!!!!
- 请教高手!急!如何用java程序在链接中打开excel或word文档
- 通过odbc查询数据库,获取数据时很奇怪的一个问题;
- 产生的随机数如何避免重复的数出现?????
要分清Thread对象和线程的区别,一个线程使用的资源有:
1、Thread对象本身使用的内存(相对很小);
2、线程的执行调用栈,在start()被分配,在run()返回时被回收(占主要的内存)。
所以按照你所说的方法是正确的。
但是要注意一个问题,就是启动、终止、销毁线程要用可观的开销。所以如果是信息接收频繁,那么就用同一个线程处理信息,用while循环,每处理完一个就进入等待。
{
int notifyValue = 3;
while(true)
{
while(!notifies.include(notifyValue))
{
wait();
}
notifies.delete(notifyValue);
dealWithMessage();
}
}
dealWithMessage()
{
//对信息的处理
}otherClass
{
receiveMessage()
{
notifies.Add(3);
NotifyAll();
}
}