纯程可以做定时操作么? 我建立了一个SOCKET连接,随时要收数据,但每过30秒要回复一个数据包.我可不可以不用TIMERTASK,就用纯程来定时. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 while (true){ Thread.sleep(time); dosomething();} 不好意思打错了,是线程Thread.sleep(time)的话线程就阻塞了,这样就不能及时收数据了 定时的时间没有到,本来就应该阻塞啊.你用timer,它也是调用wait来阻塞自己啊. 对于socket来说,每一个连接至少要一个线程,这个不说恐怕你也明白.但是一般的,对于一个连接来说,也会有多个线程.比如说一个聊天程序,一个线程用来等待接收对方说的话,一个线程负责把你的话发给对方,因为如果对方不说话,你的接收线程肯定是阻塞在那里的,这是你就不能发送你说的话了,你总不能因为对方不说话自己也不说话了吧? 那你完全可以用timertask嘛,一个线程在随时接收数据,timertask的线程负责去传送数据包.你自己要自己做一个线程来完成timertask的工作也可以. 如果又实现timertask,又实现thread,两个都是run这怎么做?如果在thread里做timertask,timertask也是实现Runnable,我线程里的socket已经关掉了,Timertask会自动清除么?纯程关闭不是最好不要用destory么?这样的话怎么关? lz,一个线程肯定是不行的.timertask不会自动清除,你在关闭socket之前,要将timer的任务cancle掉.线程关闭不要强制,最好设置一个标志位,然后让线程检查,让它自己关掉自己. 客户端有200多个,而且只发信息,没回复,当客户端关闭的时候,怎么试,我用过isClose(),没什么用的.而且每个客户端要两个线程,系统开销太大了吧 求牛人指点一下 坐等哦! 关于java中实现多个接口的问题 如何选择路? 范型求助 北京 急招java开发人员 网上有Java比较基础,比较经典的考题吗? 读BMP文件的像素问题 jb7中 Tools->Configure Servers 中的设置问题 szayang(炸弹) !你JDK的环境设置我没有看懂! 怎么样得到一个Frame的Graphics? 布局问题:多行、多列,各组件大小不同,如何对齐? ZipOutputStream的问题
{
Thread.sleep(time);
dosomething();
}
Thread.sleep(time)的话线程就阻塞了,这样就不能及时收数据了
但是一般的,对于一个连接来说,也会有多个线程.比如说一个聊天程序,一个线程用来等待接收对方说的话,一个线程负责把你的话发给对方,因为如果对方不说话,你的接收线程肯定是阻塞在那里的,这是你就不能发送你说的话了,你总不能因为对方不说话自己也不说话了吧?
timertask不会自动清除,你在关闭socket之前,要将timer的任务cancle掉.
线程关闭不要强制,最好设置一个标志位,然后让线程检查,让它自己关掉自己.