不用线程,可否实现某个函数定时被调用的功能? 需要注册一些函数,同时每个函数设定一个间隔,每隔这么长间隔就调用一次这个函数。用线程实现感觉太耗资源,一个函数对应一个线程,函数一多系统就变得很慢。请问有没有不用线程,可以直接实现这种功能的方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不用线程恐怕完成不了吧,Timer定时器实际上也是另起动一个线程不过用一个线程应该能达到你的要求吧,比如说你有三个函数定时执行,定义三个时间(分别代表三个要执行的函数的时间间隔)以及一个计数器:int t1=1;int t2=2;int t3=3;int n=0;然后启动线程以后,线程每1000毫秒执行一次,没执行一次,计数器加1,然后判断计数器和上面的三个数是否整除,可以和那个数整除,就执行那个数代表的函数,直到计数器n==t1*t2*t3,三个函数一起执行,同时计数器清零,从头开始记数!while(true){ n++; if(n%t1==0){ 执行t1代表的函数 } if(n%t2==0){ 执行t2代表的函数 } if(n%t3==0){ 执行t3代表的函数 } if(n==t1*t2*t3){ 同时执行三个函数 n=0; } this.sleep(1000);} 根本就不需要线程,用Timer定时器就行了!java.util.Timer或者用quartz,参考这个http://www.blogjava.net/pdw2009/category/13199.html Timer本身也是使用线程来完成的,和楼主一样不知道怎么做啊,等待 必须用线程,就算你不显示调用其实地层也是再调用,Timer TO:pdw2009一看兄台就是一个新手, Timer和quartz地层都是线程,和直接调用没什么区别,只是你用这个是别人封装的罢了 你可以自己写一个判断时间的函数~~~~函数中用Date t=new Date();然后用时间来确定要隔多久执行一次 我写的贪吃蛇-逻辑问题:运行时,会突然多出1个食物,求解 纯技术讨论-有限的内存下如何大批量下载数据-生成excel 一数学最值问题 新手看到一个很好的帖子后有了两个问题 JTable中关于设置表格大小的问题 >>>>> 航母级Java建模软件--MagicDraw UML Enterprise 9.5 下载地址.要的进来看 <<<<< java数组问题 这个程序为什么出错??? 怎样根据查询返回的字段值(数值或字符型值)的宽度动态设置JTabel的Column的宽度 jbuilder4.0卸不了 求教一个关于构造函数的问题 元搜索!!!
不过用一个线程应该能达到你的要求吧,比如说你有三个函数定时执行,定义三个时间(分别代表三个要执行的函数的时间间隔)以及一个计数器:
int t1=1;
int t2=2;
int t3=3;
int n=0;
然后启动线程以后,线程每1000毫秒执行一次,没执行一次,计数器加1,然后判断计数器和上面的三个数是否整除,可以和那个数整除,就执行那个数代表的函数,直到计数器n==t1*t2*t3,三个函数一起执行,同时计数器清零,从头开始记数!
while(true){
n++;
if(n%t1==0){
执行t1代表的函数
}
if(n%t2==0){
执行t2代表的函数
}
if(n%t3==0){
执行t3代表的函数
}
if(n==t1*t2*t3){
同时执行三个函数
n=0;
}
this.sleep(1000);
}
或者用quartz,参考这个
http://www.blogjava.net/pdw2009/category/13199.html
和楼主一样不知道怎么做啊,
等待
函数中用Date t=new Date();
然后用时间来确定要隔多久执行一次