gpt4 book ai didi

multithreading - 是否应该在长时间运行的进程中留下空闲线程?

转载 作者:数据小太阳 更新时间:2023-10-29 03:40:05 26 4
gpt4 key购买 nike

我正在创建一个旨在长期运行并监听工作的 go 程序。当它收到请求时,它会在进程队列上运行工作。

我是 golang 和系统编程的新手,所以我的问题是:我应该在程序启动时启动进程队列(有多个空闲工作线程)(它们会一直坐在那里直到工作开始)还是应该我在工作到达时启动它们并在完成时关闭它们?

我不清楚多个空闲线程对整个系统的影响,但我假设因为它们是空闲的,所以在工作到达之前不会有任何影响。也就是说,我想确保我的程序是一个“好邻居”并且尽可能高效。

--编辑--

澄清一下,“进程池”是一组在 channel 上等待工作的 worker go routines。它们应该在工作到达时启动/停止,还是在程序启动时启动并等待工作到来?

最佳答案

首先,您不能使用标准 Go 库创建线程。在 Go 宇宙中,你应该使用所谓的 goroutines green threads .

通常你不应该产生“可重用”的协程。它们的创建成本很低,因此在工作任务到达时按需创建它们,并在工作完成后立即完成(从 goroutine 返回)。

也不要犹豫创建嵌套的 goroutines。一般来说,如果您觉得应该以并发方式做某事并且不要尝试重用它们,那么疯狂地产生它们,因为它没有意义。

关于multithreading - 是否应该在长时间运行的进程中留下空闲线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34616169/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com