![]() |
1
9
也不使用 Thread Pool! |
![]() |
2
2
线程创建相当昂贵,因此标准的“工业强度”方法是用一个标志控制线程。对于同一个概念上的较大规模的变体,考虑线程池,例如Apache用来管理数千个线程,而不需要显式的状态或痛苦的性能命中。 因此,在摘要中,我会投票支持您的选项1。但是如果性能不是一个问题,而且选项2代码更容易推理,那么就去吧。 |
![]() |
3
2
互斥或信号量比简单的布尔标志更好,因为它不需要反复检查标志的状态。只需阻塞互斥量/信号量,当您希望线程运行时,释放互斥量/信号量,线程将运行一次。 |
![]() |
4
2
使用一个专门的线程来完成这项工作可能是一个好主意,但如何管理它可能是一件大事。如果你只是做一个
要直接回答您的问题,可以使用
|
![]() |
5
1
您还可以使用bool标志来指示线程是否应该停止。这会给你中断和停止代码。所以有两个布尔值,一个用于判断是否有功,另一个用于停止循环。
|
![]() |
6
1
我会使用bool标志,但您需要确保它被正确锁定或仅从一个线程设置。你的循环应该是这样的
这确保您可以将线程发送到睡眠状态,但也可以正确终止它。如果你可以避免杀死一个线程,那么杀死它永远都不是一个好主意,因为这个线程没有机会清理任何使用过的资源。不过,你需要决定一个合适的睡眠时间间隔。它将决定线程启动所需的延迟。
|
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
![]() |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
![]() |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
![]() |
rhymes · 如何让线程操作相同的java列表 2 年前 |