需要注册一些函数,同时每个函数设定一个间隔,每隔这么长间隔就调用一次这个函数。
用线程实现感觉太耗资源,一个函数对应一个线程,函数一多系统就变得很慢。请问有没有不用线程,可以直接实现这种功能的方法?
用线程实现感觉太耗资源,一个函数对应一个线程,函数一多系统就变得很慢。请问有没有不用线程,可以直接实现这种功能的方法?
解决方案 »
- 求救,关于java和mysql数据库的
- J2se的client端怎么和tomcat通信,或者其他的远程服务端
- windows2003 服务器 mysql使用率100% (java项目)
- 设计一个类时,我觉得一个*.java文件里边,没有必要设计在多个类。我都设计成本类里的方法。
- Java Serlet 2.4、JSP 2.0 入门教程
- [求教]如何从txt文件中读中文,输出在屏幕上
- 请教声明变量的语句位置的问题.谢谢!!
- 哪里有java编程思想第3版(中文)下载呀,发给我一份谢谢了,马上给分
- EJB test client中有两个方法不能被解析,该导入什么类?
- 建立一个urlconnection,怎样才能在这个urlconnection产生异常的情况下,不对程序的其他部分产生影响?
- 求教一个关于构造函数的问题
- 元搜索!!!
不过用一个线程应该能达到你的要求吧,比如说你有三个函数定时执行,定义三个时间(分别代表三个要执行的函数的时间间隔)以及一个计数器:
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();
然后用时间来确定要隔多久执行一次