import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
public class DutyTimer
{
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
private static Timer timer;
private static ScheduledExecutorService schedule = Executors.newScheduledThreadPool(2);
/**
* 0表示,多长时间开始执行
* 5 每隔五秒执行一次
* TimeUnit.SECONDS 执行时间单位
* */
private final static ScheduledFuture<?> handle = schedule.scheduleAtFixedRate(new ThreadTask(), 0, 5, TimeUnit.SECONDS);
/***
* <一句话功能简述>
* <功能详细描述> [参数说明]
* 执行三十秒后关闭
* @return void [返回类型说明]
* @exception throws [违例类型] [违例说明]
* @see [类、类#方法、类#成员]
*/
public void close()
{
schedule.schedule(new Runnable()
{
public void run()
{
handle.cancel(false);
schedule.shutdown();
}
}, 40, TimeUnit.SECONDS);
}
public static void initTimer() throws ParseException
{
timer = new Timer();
Date date = sdf.parse("20100810142050");
System.out.println("task start...");
timer.schedule(new ThreadTask(),1000,2000);// 服务启动5秒后,每隔十秒执行一次
}
public static void main(String[] args)
{
DutyTimer d = new DutyTimer();
d.close();
// try
// {
// initTimer();
// }
// catch (ParseException e)
// {
// e.printStackTrace();
// }
}
}
分享到:
相关推荐
当指定数量的线程到达屏障时,所有线程都会被释放。在本例中,我们可以设置barrier为3,表示A、B、C都需要到达屏障才能继续。 ```java CyclicBarrier barrier = new CyclicBarrier(3, () -> { // 当所有线程都到达...
资源介绍:。使用指定线程执行子程序。[模块源码] - 使用指定...易语言使用指定线程执行子程序模块源码例程程序置入汇编代码并调用API函数,实现指定线程执行子程序。资源作者:。易学编程网。资源界面:。资源下载:。
- `Thread.sleep()`方法可以使当前线程进入阻塞状态,到指定时间后自动恢复。 - `join()`方法让调用的线程等待目标线程执行完毕后再继续执行。 2. **`synchronized`关键字**: - `synchronized`用于实现线程同步...
**线程优先级**允许我们为线程指定执行的优先级,如`ThreadPriority.Highest`、`ThreadPriority.AboveNormal`、`ThreadPriority.Normal`、`ThreadPriority.BelowNormal`和`ThreadPriority.Lowest`。较高的优先级意味...
易语言使用指定线程执行子程序模块源码,使用指定线程执行子程序模块,测试,新线程,子程序,线程执行子程序,OpenProcess,OpenThread,VirtualAllocEx,CloseHandle,SuspendThread,ResumeThread,GetThreadContext,...
当线程被创建后,它将在后台独立于主线程执行指定的代码。 2. **线程同步**:为了确保线程间的协调和数据一致性,易语言提供了“同步”操作,如“等待线程”、“结束线程”等。等待线程用于暂停当前线程,直到指定...
为线程指定特定功能函数,通常是在创建线程时传递的参数中实现。例如,可以创建一个结构体,存储线程函数的参数,并在`CreateThread`时传递这个结构体的指针。线程函数在执行时可以根据这个指针获取到所需的参数,...
标题和描述所提到的是如何将QTimer对象放置到子线程中运行,以实现定时器槽函数与QTimer在同一子线程内执行,避免影响主线程的性能。 QTimer是Qt提供的一种计时器类,它可以用来定期触发一个信号,这个信号可以连接...
在编程领域,多线程是一种常见的技术,它允许程序同时执行多个独立的任务,从而提高程序的效率和响应性。在Delphi中,多线程的使用可以帮助开发者充分利用多核处理器的计算能力,优化资源分配,改善用户体验。本教程...
在提供的代码示例中,`time()`方法用于测量指定并发度下执行给定任务的总时间。它使用了三个`CountDownLatch`对象: 1. `ready`用于表示任务准备就绪的阶段。在所有工作线程执行`ready.countDown()`后,表示任务已...
### 资源池等待所有线程执行完毕的方法 在多线程编程中,经常会遇到需要等待所有线程执行完毕的情况。例如,在一个基于线程池的应用程序中,可能需要确保所有的任务都已完成才能继续执行后续操作或者进行清理工作。...
"Java实现指定线程执行顺序的三种方式" Java语言中实现指定线程执行顺序是多线程编程中一个非常重要的概念。在多线程编程中,我们经常需要让不同的线程按照一定的顺序执行,以避免线程之间的相互干扰和数据不一致的...
利用Java的反射机制,提供一个根据方法名执行指定方法的方式。
"多线程指定IP端口扫描"就是这种技术的一种高效实现。在这个场景中,`hyscan`是一款实用的命令行工具,允许用户通过指定IP地址、起始端口、结束端口以及可选的线程数来执行扫描任务。 首先,我们要理解“端口扫描”...
在易语言中,可以使用`创建线程`命令来创建新的执行线程,并指定线程的入口函数。 3. 调用API:在新创建的线程中,根据程序需求适当地调用`SwitchToThread`。这可能在循环或者特定条件满足时进行,以控制线程的执行...
这条命令发送一个请求给MySQL服务器,让其停止指定线程的执行。需要注意的是,只有拥有`SUPER`权限的用户才能终止其他用户的线程,而普通用户只能终止他们自己的线程。 线程的终止并不总是立即生效。在某些情况下,...
要实现多线程,易语言提供了“创建线程”命令,它可以创建一个新的线程并运行指定的代码块。在线程中,我们需要定义线程函数,这个函数将在线程启动后被调用。例如: ```易语言 .线程函数(参数) .开始循环 // 在...
访问路径为:http://localhost:8080/web001/test.do?flag=xxyyzz&switch=off 其中switch开关参数取值有两种:on和off,on表示执行线程对应的任务,off表示中断线程正在执行的任务。
在Java编程语言中,多线程是实现并发执行任务的关键特性。当涉及到多线程时,同步和阻塞是两个非常重要的概念。同步是为了避免多个线程同时访问共享资源,可能导致数据不一致的问题,而阻塞则是控制线程执行流程的一...