一个关于timer的问题

问题描述

我用如下java代码实现定时执行任务的功能Timertimer=newTimer()TimerTasktask1=newTimerTask();TimerTasktask2=newTimerTask();TimerTasktask3=newTimerTask();timer.shedule(task1,3*1000,30*1000);timer.shedule(task2,4*1000,30*1000);timer.shedule(task3,5*1000,30*1000);我想请教:(1)在第一个timer.shedule()运行后,是否启动一个新线程运行task1,也就是task1,task2,task3是否分别运行在三个线程上?(2)如果三个任务是运行在三个线程上,三个任务各自的时间是否没有关系?

解决方案

解决方案二:
LZ方法名貌似不对啊!!应该是timer.schedule(TimerTasktask,longdelay,longperiod)我看了下jdk1.5的帮助文档,文档中有这么一句话:--------------------------------------publicclassTimerextendsObject一种线程设施,用于安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。与每个Timer对象相对应的是单个后台线程,用于顺序地执行所有计时器任务。计时器任务应该迅速完成。如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程。因此,这就可能延迟后续任务的执行,而这些任务就可能“堆在一起”,并且在上述令人讨厌的任务最终完成时才能够被快速连续地执行。---------------------------------------所以我认为:在timer.schedule()运行后,不会启动一个新线程运行task任务,这三个task任务都是在一个线程上运行的。

时间: 2024-07-30 14:03:40

一个关于timer的问题的相关文章

timer-客户端调用2个方法,其中一个是TIMER,同时执行TIMER客户端方法都不能触发了。

问题描述 客户端调用2个方法,其中一个是TIMER,同时执行TIMER客户端方法都不能触发了. 2个都是数据库操作, 一个是对大量单据的一个操作可能比较费时根据客户选择决定执行时间, 一个是对未执行的单据进行查询还有多少条. 单个执行的时候一切正常,都能够正常执行,但是现在问题是一起执行的话,TIMER的方法就不执行了.(大数据还没有返回执行结果) 求解.. 解决方案 timer是不是超时了,当消息处理不过来时,定时器消息会自动丢掉

写一个定时器Timer,随服务器一起启动

问题描述 1.搭建SSH框架环境2.写一个定时器Timer,随服务器一起启动.3.做一个前台页面,有两个按钮<开始>.<停止>能控制Timer.4.在前台页面再做一个文本框和一个提交按钮,在文本框里输入数字,点击提交能控制Timer的时间间隔.如:输入"1111",点击提交后,Timer的时间间隔就为1111毫秒.5.做一个类Count,这个类必须由spring管理,不能修改.Timer每执行一次就调用这个类的count()方法,要求输出Timer是第几次被调用

使用C#编写一个计时器

大家好!好久没有上来了!小生在此向各方豪杰问好!今天温习了一下C#,解决了老大一个难题,以前总是搞不懂重载运算符,也不知道它有什么用处,今天总算把它给用上了,真有种在深山老林里用上电得感觉,呵呵!我用它做了一个计时器,下面我就把代码帖出来供大家玩乐一下也好!先把步骤说一下:1.用.net建立一个Windows应用程序2.在项目下添加一个类命名为"Time"3.编写"Time"类得实现代码4.在窗体中放两个Label控件和一个时钟(Timer)控件5.编写窗体得Loa

Java中的Timer和TimerTask在Android中的用法

在开发中我们有时会有这样的需求,即在固定的每隔一段时间执行某一个任务.比如UI上的控件需要随着时间改变,我们可以使用Java为我们提供的计时器的工具类,即Timer和TimerTask. Timer是一个普通的类,其中有几个重要的方法:而TimerTask则是一个抽象类,其中有一个抽象方法run(),类似线程中的run()方法,我们使用Timer创建一个他的对象,然后使用这对象的schedule方法来完成这种间隔的操作. schedule方法有三个参数 第一个参数就是TimerTask类型的对象

timer-C# Timer控件可以共用吗?

问题描述 C# Timer控件可以共用吗? 想做一个考试系统进来考试的人是随时都可以进来的.也就是说每个人进来都要在系统里面登记同时设定一个时间比如2小时到时间了系统自动提醒.想用Timer控件来做但是Timer控件可以共用吗?有点不明白请大虾们指导一下~~ 解决方案 一个Timer只能定一个时间,但是可以用你自己的算法 实现公用. 例如,用户登录的时候把登录时间保存起来(保存在数据库或者内存中都可以):timer设置没一分钟激发一次,在Elapsed event中依次计算登录用户的登录时间(当

从NSTimer的失效性谈起(二):关于GCD Timer和libdispatch

一.GCD Timer的创建和安放 虽然GCD Timer并不依赖于NSRunLoop,但是有没有可能在某种情况下,GCD Timer也失效了?就好比一开始我们也不知道NSTimer对应着一个runloop的某种mode. 先来看看GCD Timer的使用方法: dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, aQueue); dispatch_source_set_timer(

MySQL JDBC的queryTimeout的一个坑

遇到一个MySQL JDBC执行execute方法时指定queryTimeout的坑,比较恶心,算是它的BUG,也可以不算,^_^,为啥这么说?看一下下面的解释: 现象: 用同一个Connection执行大批量SQL的时候,导致了OOM现象. 细节现象描述: 1.SQL是从某个存储设备上拿到的,不会直接占用大量的内存,每次只会取最多1千条数据过去,也会判定容量不超过多少M. 2.每一批SQL执行会单独创建Statement对象,执行一批SQL后,会将这个Statement关闭掉. 3.SQL语句

利用Timer在ASP.NET中实现计划任务的方法_实用技巧

.NET Framework中为我们提供了3种类型的Timer,分别是: Server Timer(System.Timers.Timer),Thread Timer(System.Threading.Timer )和Windows Timer(System.Windows.Forms.Timer). 其中Windows Timer和WinAPI中的Timer一样,是基于消息的,而且是单线程的.另外两个Timer则不同于Windows Timer,它们是基于ThreadPool的,这样最大的好处

关于Winform的Timer控件问题

问题描述 请问Timer控件是多线程的吗??比如我设置Timer每10秒执行一个事件,如果单个事件10秒内执行不完,那10秒后,程序还会在进入吗??? 解决方案 解决方案二:Timer在winform下有3个,其中就有一个线程Timer至于10秒后,程序还会不会进入就要你自己的逻辑判断了,可以选择进入,也可以阻塞不进入解决方案三:引用1楼的回复: Timer在winform下有3个,其中就有一个线程Timer至于10秒后,程序还会不会进入就要你自己的逻辑判断了,可以选择进入,也可以阻塞不进入 3