一定时间后在 java 中终止线程
Kill thread in java after a certain time
我有一个用例如下(在 JAVA)
我收到客户的请求
例如:在此日期之前执行推特流媒体任务。
- 任务 = 推特流
- 关键字 = {"#Today", "#apple"}
- 时间 = 到 2017 年 2 月 5 日
我所做的是,我在收到的每个请求上打开一个新线程并开始我的任务,即流式传输推文并将它们保存到数据库中。
我想要做的是线程应该停止流式传输并且应该在该日期(2 月 5 日)之后被杀死。
如何实现这种类型的用例?
您可以使用 Calendar
class 并检查
Calendar c = Calendar.getInstance(TimeZone.getTimeZone(ZoneId.of("CET")));
c.set(Calendar.MONTH, 1)
c.set(Calendar.DAY_OF_MONTH, 5)
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
c.set(Calendar.MILLISECOND, 999);
while(true){
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(ZoneId.of("CET")));
if(cal.getTime().after(c.getTime()) return;
}
我有一个用例如下(在 JAVA)
我收到客户的请求
例如:在此日期之前执行推特流媒体任务。
- 任务 = 推特流
- 关键字 = {"#Today", "#apple"}
- 时间 = 到 2017 年 2 月 5 日
我所做的是,我在收到的每个请求上打开一个新线程并开始我的任务,即流式传输推文并将它们保存到数据库中。
我想要做的是线程应该停止流式传输并且应该在该日期(2 月 5 日)之后被杀死。
如何实现这种类型的用例?
您可以使用 Calendar
class 并检查
Calendar c = Calendar.getInstance(TimeZone.getTimeZone(ZoneId.of("CET")));
c.set(Calendar.MONTH, 1)
c.set(Calendar.DAY_OF_MONTH, 5)
c.set(Calendar.HOUR_OF_DAY, 23);
c.set(Calendar.MINUTE, 59);
c.set(Calendar.SECOND, 59);
c.set(Calendar.MILLISECOND, 999);
while(true){
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone(ZoneId.of("CET")));
if(cal.getTime().after(c.getTime()) return;
}