为什么当a小于8的时候程序就能正常停止,当a大于等于8时程序就一直在执行 不会停止呢

linmingliang · 2018-04-30 12:47:29 · 1206 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-04-30 12:47:29 的主题,其中的信息可能已经有所发展或是发生改变。

package main

import ( "time" )

func main() {

channel()

}

func channel() {

i := 0
a := 8
for j := 0; j < a; j++ {

    go func() {
        //fmt.Println(1)
        for {
            i++
        }
    }()
}

time.Sleep(time.Millisecond)

}


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1206 次点击  
加入收藏 微博
4 回复  |  直到 2018-05-17 14:30:59
jarlyyn
jarlyyn · #1 · 7年之前

怎么最近这么多一个裸for把cpu跑100%的操作…………

第一反应你电脑是4核8线程的,cpu都跑满分配不了了。

Myst21Sid
Myst21Sid · #2 · 7年之前

你机器太烂了吧,我6年前的笔记本都能把a设为300正常跑结束

barryz
barryz · #3 · 7年之前

for{} 没退出边界, 会一直占用CPU

fwhez
fwhez · #4 · 7年之前

因为cpu被协程占有了,可以试试在for里面加一个time.Sleep(time.Millisecond)

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传