当前位置:  开发笔记 > 编程语言 > 正文

哪种方法更好?允许线程暂停一段时间或删除它并在以后重新创建它?

如何解决《哪种方法更好?允许线程暂停一段时间或删除它并在以后重新创建它?》经验,为你挑选了1个好方法。

我们有一个需要每两个小时运行一次的流程.这是一个需要在其自己的线程上运行的进程,以便不中断正常处理.

运行时,它将下载100k记录并根据数据库进行验证.运行它的框架有很多对象来管理这个过程.这些对象只需在进程运行时出现.

什么是更好的标准?

    让线程处于等待模式,直到我再次需要它为止.要么,

    完成后删除它,并在下次需要时创建它?(系统计时器事件.)

Pierre.. 9

两种解决方案之间没有太大区别.我倾向于更喜欢每次创建线程的那个.

有一个线程四处消耗资源(至少内存).在垃圾收集语言中,可能很容易在此线程中保留一些对象,从而使用更多内存.如果您没有放置线程,则所有资源都将被释放并在主进程中可用两个小时.

当你想要停止你的线程可能正在执行的整个过程时,你需要干净地中断线程.中断线程或知道它是在休眠还是工作总是很困难.你可能会遇到一些竞争条件.按需启动线程可以使您免受这些潜在问题的影响:您知道是否启动了线程,在这种情况下,调用thread_join会让您等到线程完成.

出于这些原因,我会选择线程随需应变解决方案,即使另一个没有不可避免的问题.



1> Pierre..:

两种解决方案之间没有太大区别.我倾向于更喜欢每次创建线程的那个.

有一个线程四处消耗资源(至少内存).在垃圾收集语言中,可能很容易在此线程中保留一些对象,从而使用更多内存.如果您没有放置线程,则所有资源都将被释放并在主进程中可用两个小时.

当你想要停止你的线程可能正在执行的整个过程时,你需要干净地中断线程.中断线程或知道它是在休眠还是工作总是很困难.你可能会遇到一些竞争条件.按需启动线程可以使您免受这些潜在问题的影响:您知道是否启动了线程,在这种情况下,调用thread_join会让您等到线程完成.

出于这些原因,我会选择线程随需应变解决方案,即使另一个没有不可避免的问题.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有