我们有一个需要每两个小时运行一次的流程.这是一个需要在其自己的线程上运行的进程,以便不中断正常处理.
运行时,它将下载100k记录并根据数据库进行验证.运行它的框架有很多对象来管理这个过程.这些对象只需在进程运行时出现.
什么是更好的标准?
让线程处于等待模式,直到我再次需要它为止.要么,
完成后删除它,并在下次需要时创建它?(系统计时器事件.)
Pierre.. 9
两种解决方案之间没有太大区别.我倾向于更喜欢每次创建线程的那个.
有一个线程四处消耗资源(至少内存).在垃圾收集语言中,可能很容易在此线程中保留一些对象,从而使用更多内存.如果您没有放置线程,则所有资源都将被释放并在主进程中可用两个小时.
当你想要停止你的线程可能正在执行的整个过程时,你需要干净地中断线程.中断线程或知道它是在休眠还是工作总是很困难.你可能会遇到一些竞争条件.按需启动线程可以使您免受这些潜在问题的影响:您知道是否启动了线程,在这种情况下,调用thread_join
会让您等到线程完成.
出于这些原因,我会选择线程随需应变解决方案,即使另一个没有不可避免的问题.
两种解决方案之间没有太大区别.我倾向于更喜欢每次创建线程的那个.
有一个线程四处消耗资源(至少内存).在垃圾收集语言中,可能很容易在此线程中保留一些对象,从而使用更多内存.如果您没有放置线程,则所有资源都将被释放并在主进程中可用两个小时.
当你想要停止你的线程可能正在执行的整个过程时,你需要干净地中断线程.中断线程或知道它是在休眠还是工作总是很困难.你可能会遇到一些竞争条件.按需启动线程可以使您免受这些潜在问题的影响:您知道是否启动了线程,在这种情况下,调用thread_join
会让您等到线程完成.
出于这些原因,我会选择线程随需应变解决方案,即使另一个没有不可避免的问题.