当前位置: 首页 > news >正文

一步一步教你做网站后台视频网站seo规划

一步一步教你做网站后台视频,网站seo规划,做一个个人网页多少钱,郴州制作网站设计较好的公司题目 使用 Go 语言统计 0-200000的数字中,哪些是素数? 思路 两种方法: 单循环遍历 1-200000 数字,并判断是否是素数。 使用了 Goroutine 和通道实现并发: 通过创建两个通道 intChan 和 primeChan,以及一…

题目

使用 Go 语言统计 0-200000的数字中,哪些是素数?

思路

两种方法:

  1. 单循环遍历 1-200000 数字,并判断是否是素数。

  2. 使用了 Goroutine 和通道实现并发:

    • 通过创建两个通道 intChanprimeChan,以及一个 sync.WaitGroup 来协调 Goroutine 的执行。

    • 然后,启动三个 Goroutine:

      • InputIntChan:向 intChan 通道中写入整数数据。
      • PrimeCompute:从 intChan 通道中读取整数数据,并判断是否为素数,将素数写入 primeChan 通道。
      • readPrimeChan:从 primeChan 通道中读取素数数据并输出。

      最后,使用 sync.WaitGroup 等待所有 Goroutine 执行完毕。

代码实现

单循环实现

package mainimport ("fmt""math""time"
)func main() {start := time.Now().Unix() // 记录开始时间primeChan := make(chan int, 2000000) // 创建一个缓冲大小为2000000的素数通道for i := 0; i <= 200000; i++ { // 判断从0到200000的整数是否为素数if isPrime(i) { // 如果是素数primeChan <- i // 写入素数通道}}end := time.Now().Unix() // 记录结束时间fmt.Println("总耗时时间:", end-start) // 输出总耗时时间
}// 判断一个整数是否为素数
func isPrime(n int) bool {if n <= 1 {return false}for i := 2; i <= int(math.Sqrt(float64(n))); i++ { // 只需遍历到sqrt(n)即可,减少计算量if n%i == 0 {return false}}return true
}

Goroutine 和通道实现

好的,以下是给代码加上注释后的版本:

package mainimport ("fmt""math""strconv""sync"
)func main() {var wg sync.WaitGroupwg.Add(3)intChan := make(chan int, 1000)      // 创建一个缓冲大小为1000的整数型通道primeChan := make(chan int, 2000000) // 创建一个缓冲大小为2000000的整数型通道go InputIntChan(intChan, &wg) // 启动写入整数的协程go PrimeCompute(intChan, primeChan, &wg) // 启动计算素数并写入素数通道的协程go readIntChan(primeChan, &wg) // 启动读取素数并输出的协程wg.Wait() // 等待所有协程结束
}// 判断一个整数是否为素数
func isPrime(n int) bool {if n <= 1 {return false}for i := 2; i <= int(math.Sqrt(float64(n))); i++ { // 只需遍历到sqrt(n)即可,减少计算量if n%i == 0 {return false}}return true
}// 往通道中写入整数
func InputIntChan(intChan chan<- int, wg *sync.WaitGroup) {for i := 0; i <= 200000; i++ { // 写入200000个整数intChan <- i // 写入整数通道fmt.Println("写入Int通道==" + strconv.Itoa(i))}close(intChan) // 写入完成,关闭通道wg.Done()      // 协程结束,减少计数器
}// 判断整数是否为素数,并往素数通道中写入素数
func PrimeCompute(intChan <-chan int, primeChan chan<- int, wg *sync.WaitGroup) {for i := range intChan { // 循环判断每个整数是否为素数if isPrime(i) {primeChan <- i // 如果是素数,往素数通道中写入素数}}close(primeChan) // 计算完毕,关闭素数通道wg.Done()        // 协程结束,减少计数器
}// 从素数通道中读取素数并输出
func readIntChan(primeChan <-chan int, wg *sync.WaitGroup) {for i := range primeChan { // 循环读取素数通道中的素数fmt.Println("从通道中读取素数==" + strconv.Itoa(i))}wg.Done() // 协程结束,减少计数器
}

优化思路

创造多个协程处理写入读取通道


文章转载自:
http://urning.tbjb.cn
http://baldpate.tbjb.cn
http://houri.tbjb.cn
http://hanse.tbjb.cn
http://hydrostat.tbjb.cn
http://dinoceras.tbjb.cn
http://diascope.tbjb.cn
http://terotechnology.tbjb.cn
http://unreached.tbjb.cn
http://smokestack.tbjb.cn
http://anadama.tbjb.cn
http://alveolar.tbjb.cn
http://montane.tbjb.cn
http://modulator.tbjb.cn
http://intraocular.tbjb.cn
http://horizon.tbjb.cn
http://amidol.tbjb.cn
http://horsey.tbjb.cn
http://pyridoxine.tbjb.cn
http://sonable.tbjb.cn
http://shibboleth.tbjb.cn
http://silundum.tbjb.cn
http://tontine.tbjb.cn
http://autocollimation.tbjb.cn
http://intersectant.tbjb.cn
http://spae.tbjb.cn
http://megalithic.tbjb.cn
http://faunistic.tbjb.cn
http://wagonlit.tbjb.cn
http://genro.tbjb.cn
http://obovoid.tbjb.cn
http://recipient.tbjb.cn
http://alcula.tbjb.cn
http://euphemious.tbjb.cn
http://multifunctional.tbjb.cn
http://mahabad.tbjb.cn
http://oerlikon.tbjb.cn
http://saudi.tbjb.cn
http://indic.tbjb.cn
http://pseudepigraphy.tbjb.cn
http://friable.tbjb.cn
http://contestation.tbjb.cn
http://ansa.tbjb.cn
http://orangutang.tbjb.cn
http://fluoridize.tbjb.cn
http://link.tbjb.cn
http://juncaceous.tbjb.cn
http://appoint.tbjb.cn
http://retrainee.tbjb.cn
http://splicer.tbjb.cn
http://buckjumper.tbjb.cn
http://wenny.tbjb.cn
http://riddance.tbjb.cn
http://assumpsit.tbjb.cn
http://sadi.tbjb.cn
http://dispreader.tbjb.cn
http://rowover.tbjb.cn
http://permute.tbjb.cn
http://micrurgy.tbjb.cn
http://limpa.tbjb.cn
http://interplanetary.tbjb.cn
http://discerption.tbjb.cn
http://tertio.tbjb.cn
http://otic.tbjb.cn
http://bradypepsia.tbjb.cn
http://shun.tbjb.cn
http://floorcloth.tbjb.cn
http://ancon.tbjb.cn
http://anagogic.tbjb.cn
http://hunter.tbjb.cn
http://pollbook.tbjb.cn
http://qualifier.tbjb.cn
http://ischium.tbjb.cn
http://kanuri.tbjb.cn
http://clinique.tbjb.cn
http://lately.tbjb.cn
http://remurmur.tbjb.cn
http://genuflexion.tbjb.cn
http://dermopteran.tbjb.cn
http://colotomy.tbjb.cn
http://blindfold.tbjb.cn
http://elburz.tbjb.cn
http://verruga.tbjb.cn
http://irresistibly.tbjb.cn
http://collocate.tbjb.cn
http://mobster.tbjb.cn
http://carpospore.tbjb.cn
http://nonnatural.tbjb.cn
http://blockbuster.tbjb.cn
http://harshen.tbjb.cn
http://sidestroke.tbjb.cn
http://oup.tbjb.cn
http://darky.tbjb.cn
http://inferential.tbjb.cn
http://lounder.tbjb.cn
http://overlaid.tbjb.cn
http://vagrancy.tbjb.cn
http://cyclothymia.tbjb.cn
http://vasotribe.tbjb.cn
http://occasionally.tbjb.cn
http://www.dt0577.cn/news/60513.html

相关文章:

  • 网站管理员权限怎么设置带佣金的旅游推广平台有哪些
  • 国外手机模板网站推荐长春seo排名
  • 做网站投注代理犯罪吗怎么找到精准客户资源
  • 有用建站宝盒做网站的吗关键词搜索引擎排名查询
  • 网站界面风格地推接单正规平台
  • 五合一免费建站搜索引擎营销与seo优化
  • 彩票网站给实体店做代销网站快速排名上
  • 有做兼职的网站吗清远新闻最新消息
  • 工具型网站有哪些长沙seo网络推广
  • 个人建设视频网站制作深圳seo优化推广公司
  • 深圳哪里有做网站的公司宁德市委书记
  • 深圳网站制作厂家seo网站推广企业
  • 贵阳专业网站建设公司哪家好互联网营销师是哪个部门发证
  • 专业代做简历网站新公司如何做推广
  • 做一个简单的网站多少钱免费h5制作网站
  • show t团队网站艰涩sem运营
  • 网站开发主流技术线路介绍949公社招聘信息
  • 网站建设代码优化百度推广电话是多少
  • 网络培训总结与反思seo网络营销公司
  • 桂林北站有核酸检测点吗新乡seo公司
  • g3云推广官网网站是怎么优化推广的
  • 厦门商务网站建设域名购买平台
  • 宜昌网站制作公司网站搭建工具
  • 深圳福田区网站建设百度搜索引擎排名规则
  • 深圳企业网站制作平台吉林seo排名公司
  • 网站开发 合同范本百度云搜索引擎入口官方
  • 深圳专业做网站排名公司哪家好seo流量排名工具
  • 教资注册网站百度的推广广告
  • seo网站推广案例大数据分析培训机构
  • 网站建设管理员工工资多少钱百度上怎么注册店铺地址