1
0
等待组解决不同的问题。 把后面收拾得干干净净 ,您可能需要执行以下组合操作:
在执行此任务然后退出的示例程序中,严格来说不需要执行这两种操作。作为
this comment
表示您的程序
但是,如果您将此代码打包到库中,或者它成为长时间运行的“反向素数计算”服务的一部分,则最好整理生成的goroutine,以避免不必要地浪费周期。此外,一般情况下,您可能会遇到goroutine存储状态、持有外部资源的句柄或持有内部对象的句柄的其他情况,如果没有正确地整理这些内容,您可能会有泄漏的风险。最好正确地关闭这些内容。 传达停止工作的要求有几种方法可以传达这一点。我不认为这是一个详尽的清单! (请务必在评论中建议其他通用方法,或建议对帖子进行编辑。) 使用特殊频道axiom :
在本例中,关闭逻辑是浪费的,因为
使用上下文
这个
这与另一个案例的bug相同,因为
在上述示例中,关闭关闭通道或关闭上下文的代码不会等到子goroutine停止工作后再继续。这在某些情况下是可以接受的,而在另一些情况下,您可能需要保证goroutines在继续之前已经停止。
这个算法当然可以通过使用您定义的goroutine来并行化。由于工作是CPU受限的,goroutine对可用CPU数量的限制(在机器上没有其他工作的情况下)有助于从可用的计算资源中获益。 peterSO's answer 一个错误修复。 |
2
1
你实际上不需要一个循环来计算这个。 如果你使用 GCD function (标准库的一部分),您将得到返回的数字x和y,以便:
这意味着x是您想要的答案(因为x*P=1模基):
|
grandmasternik · 缺少文件或方法 2 年前 |
nvh · 无限期运行Go例程(完成后重新启动) 2 年前 |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
kepemo2494 · 如何使用docker运行golang? 2 年前 |
muthermutton · 为什么我的切片在追加时没有更新?[重复] 2 年前 |
nos · 将Golang二进制文件读入切片数据,结果为零 2 年前 |
Tono Nam · 指向同一内存位置的两个不同类型的对象 2 年前 |