「java线程定时器」java定时器和多线程的区别

博主:adminadmin 2023-03-21 07:53:07 831

今天给各位分享java线程定时器的知识,其中也会对java定时器和多线程的区别进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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定时器和多线程的区别的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。