一段时间后杀死java中的线程

时间:2017-01-31 16:00:47

标签: java multithreading twitter twitter4j

我有一个用例如下(在 JAVA 中)

我收到客户的请求

例如:推特流媒体任务直至此日期。

  • 任务=推特流媒体
  • Keywords = {“#Today”,“#apple”}
  • 时间= 2017年2月5日

我所做的是, 我在收到的每个请求上打开一个新线程,然后启动我的任务,即发送推文并将其保存到数据库。 < / p>

我想要做的是线程应该停止流式传输,并且应该在此日期(2月5日)之后被杀死。

如何实现此类用例?

1 个答案:

答案 0 :(得分:1)

您可以使用Calendar类并检查,例如

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;
}