登录
首页 >  Golang >  Go教程

关于golang利用channel和goroutine完成统计素数的思路

来源:脚本之家

时间:2022-12-28 15:12:41 116浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《关于golang利用channel和goroutine完成统计素数的思路》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

1. 需求

要求统计1-200000的数字中,哪些是素数?这个问题在本章开篇就提出来了,可以使用goroutine和channel来完成

2.分析思路

传统的方法,就是使用一个循环,循环的判断各个数是不是素数【ok】

使用并发/并行的方式,将统计素数的任务分配给多个(x个)goroutine去完成,完成任务时间短

分析思路图:

 代码实现:

package main
import (
	"fmt"
	"time"
)
// 需求:
// 要求统计1-200000的数字,哪些是素数?这个问题在本章开篇就提出了,现在我们有goroutine和channel的知识后,就可以完成了【测试数据:80000】
// 分析思路:
// 传统的方法,就是使用一个循环,循环的判断各个数是不是素数【ok】
// 使用并发/并行的方式,将统计素数的任务分配给多个(x个)goroutine去完成,完成任务时间短
 
// 1. 向intChan放入1-8000的数字
func putNum(intChan chan int) {
	for i := 1; i 

结论:使用go协程结合channel后,执行的速度,会大大 提高

go中可以轻松开启1万个协程 

今天关于《关于golang利用channel和goroutine完成统计素数的思路》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表