「java线程定时器」java定时器和多线程的区别
今天给各位分享java线程定时器的知识,其中也会对java定时器和多线程的区别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、JAVA定时器运行状态确认
- 2、java到时关程序,怎么用线程写。
- 3、java中使用多线程创建定时器访问数据库
- 4、java定时器与线程的区别
- 5、java定时任务使用多线程webservcie执行了两次这是为什么?
JAVA定时器运行状态确认
问题一:定时器一般是以线程的方式运行的,如果能得到该线程的引用,就可以像查看Thread一样查看定时器的运行状态。如果可以修改源代码的话最好给他提供一个方法返回线程引用
问题二:TimerTask实现了接口Runnable,如果是以new Thread(TimerTask).start()方式启动的话就是做为一个单独的线程运行的,如果是timeTask.run()那就是方法调用,虽然占据一个线程,但这个线程就是主线程,并没有启动新的线程;既然实现线程,自然可以通过Thread的isAlive方法获取其live状态;一般情况下(不发生异常),定时器会一直运行,如果JVM停止,那么线程必然已经终止,如果JVM中只有这一个线程在运行,那么JVM不停,这个定时器就是一定在运行中,如果JVM中还有其他线程在运行,那么JVM不停,这个定时器有可能已经终止
PS:无论用不用线程池,线程启动方式只有两种(不包含main Thread):一种是继承Thread类,然后直接同构引用调用start方法,第二种就是继承Runnable接口,通过new Thread(new MyRunnableClass()).start()方式启动。无论如何,都会有一个Thread类的引用
补充:
一个tomcat只启动一个进程,而JVM的垃圾处理器也只有一个,所以在一个工程里运行System.gc也会影响到其他工程。
java到时关程序,怎么用线程写。
这个很简单啊
用java的定时器以下是代码,纯手工,请采纳.
/**
* 定时任务
* @author Administrator
*
*/
public class MyTask extends java.util.TimerTask{
public void run() {
System.out.println("退出程序");
System.exit(0);
}
}
String time = "2015-01-21 20:04:00"; //预定时间
java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//日间解析器,注意格式要与预定时间格式一样
java.util.Timer timer = new Timer(true);//声明一个定时器
timer.schedule(new MyTask(), sdf.parse(time));//绑定任务,到达时间后会执行
java中使用多线程创建定时器访问数据库
为什么要定时访问数据库,这样写程序本身就不符合写软件的规则,因为会耗费比较多的系统资源
java定时器与线程的区别
javax.swing.Timer
尽管所有 Timer 都使用一个共享线程(由第一个执行操作的 Timer 对象创建)执行等待,但是 Timer 的动作事件处理程序还会在其他线程(事件指派线程上)执行。这意味着 Timer 的操作处理程序可以安全地在 Swing 组件上执行操作。但是,它也意味着处理程序必须快速执行以保证 GUI 作出响应。
java.util.Timer
一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。
简单理解,javax.swing.Timer没有增加线程,利用事件线程的间隙运行,java.util.Timer增加线程了。
java定时任务使用多线程webservcie执行了两次这是为什么?
java Timer定时器是线程方式实现的。你可以把间隔时间调大点。如果操作数据库的话,可以再数据库的记录上加上标记字段,表示记录正在处理。
关于java线程定时器和java定时器和多线程的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。