在一段时间后杀死java中的线程
我有一个如下的用例(在JAVA中) 我收到客户的请求 例如:在此日期之前执行推特流媒体任务在一段时间后杀死java中的线程,java,multithreading,twitter,twitter4j,Java,Multithreading,Twitter,Twitter4j,我有一个如下的用例(在JAVA中) 我收到客户的请求 例如:在此日期之前执行推特流媒体任务 任务=推特流 关键词={“#今天”,“#苹果”} 时间=至2017年2月5日 我所做的是,我在收到的每个请求上打开一个新线程,并开始我的任务,即推特流并将其保存到数据库中。 我想做的是线程应该停止流式处理,并在这个日期(2月5日)之后被杀死 如何实现这种类型的用例?您可以使用日历类并检查 Calendar c = Calendar.getInstance(TimeZone.getTimeZone(Zo
- 任务=推特流
- 关键词={“#今天”,“#苹果”}
- 时间=至2017年2月5日
如何实现这种类型的用例?您可以使用
日历类并检查
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;
}
中断线程。线程是否在循环中?你能检查一下当前的日期吗?到2月5日就退学吗?请添加相关代码。这里有一个例子。对于两个任务,一个执行主程序,另一个被安排在特定时间中断第一个任务。使用易失性布尔值控制循环(形式为while!stop)。当你在某个日期后阅读第一条推文时,只需将stop设置为true。谢谢你的回答。不使用while循环就可以实现此目的的任何其他方法。@PrakashPandey没有在线程上设置到期计时器的内置方法。你可以通过在线程中设置到期日来实现,比如我的答案或者上面的一个注释,其中另一个对象杀死了线程。Murat,垃圾收集器会在返回后删除所有线程资源吗代码>?@PrakashPandey如果不再引用该线程,则为Yes。如果它是匿名的,它将被垃圾收集。Calendar c=Calendar.getInstance();c.set(日历年,2017年);c.设置(日历月,2);c.设置(日历日/月/日,2);c.设置(日历小时/天,20);c.设置(日历分钟,43);c.set(日历秒,0);c.set(日历毫秒,0)代码>