上一页 1 ··· 3 4 5 6 7 8 9 10 11 12 下一页
摘要: 执行的结果 主协程和子协程近乎是同时执行,但是主协程因为有了管道的阻塞所以一直都不会执行打印 子协程在执行过自己的循环之后才会对管道进行一个写值,这时主协程一旦看到管道里有值就会立刻执行下面的程序 阅读全文
posted @ 2018-09-19 11:12 蟒城贝勒爷 阅读(373) 评论(0) 推荐(0) 编辑
摘要: goroutine运行在相同的地址空间,因此访问共享内存必须 做好同步。goroutine奉行通过通信来共享内存,而不是共享内存通信 它跟map一样,使用make来创建,它是一个引用 ,而不是值传递 make(chan Type, capacity) channel <- value //发送val 阅读全文
posted @ 2018-09-19 09:35 蟒城贝勒爷 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 这段代码执行的结果为 可以看到因为使用了并发它的打印是交叉了的,但是在实际的使用过程中,我们肯定是希望打印了person1的任务后再打印person2的任务,如何在使用并发的时候也能实现呢?下一篇,Channel的使用 阅读全文
posted @ 2018-09-19 09:16 蟒城贝勒爷 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 会发现打印结果里有大片的1或者0 那如果指定两个核呢 那么结果会很不一样 可以看得出来并发的时间片出让明显快了很多 那么4核 虽然看不出来啥, 阅读全文
posted @ 2018-09-19 07:44 蟒城贝勒爷 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 这里执行的结果为 但是如果在defer fmt.Println("cccccccccccc")的下面加一句return呢? 那么执行结果就是 return的意思是终止此函数,那么在终止前又有一个defer所以才会打印ccccccccc,那么dddddddddddd自然不会被执行 下面我们的goexi 阅读全文
posted @ 2018-09-19 07:25 蟒城贝勒爷 阅读(192) 评论(0) 推荐(0) 编辑
摘要: Gosched:让出CPU时间片 Goexit:退出当前的协程 GOMAXPROCS:设置使用最大的CPU数量(哇,牛逼了。。。) 如果程序写在这样的话,那么子协程是永远都不会被执行的,因为在go中向来都先执行主协程,这里主协程的循环明显比子协程要短,那么子协程永远都不会被执行 所以需要主协程让出时 阅读全文
posted @ 2018-09-19 07:03 蟒城贝勒爷 阅读(735) 评论(0) 推荐(0) 编辑
摘要: 执行的结果 这里有一点需要注意的是:在一个程序启动时,其主函数即在一个单独的goroutine中运行,我们叫它main goroutine,新的goroutine会用go语句来创建,当主协程(main goroutine)退出时,其它的子协程也会退出,验证一下 执行结果 被调用的匿名函数是无限循环, 阅读全文
posted @ 2018-09-18 17:22 蟒城贝勒爷 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 并行:指在同一时刻,有多条指令在多个处理器上同时执行 并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只有把时间分成若干段,使多个进程快速交替的执行 对于go语言来说:它是从语言层面上来支持并发的,开发者不用去 阅读全文
posted @ 2018-09-18 17:14 蟒城贝勒爷 阅读(134) 评论(0) 推荐(0) 编辑
摘要: writestring的方式只适用于字符串的写入,对于十进制文件的写入只要使用write就可以了 然后使用命令进行exe文件的创建 然后直接运行程序就可以了 阅读全文
posted @ 2018-09-18 16:49 蟒城贝勒爷 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 执行结果 可以看到这里i=0后面的\n也被读取了 阅读全文
posted @ 2018-09-18 16:16 蟒城贝勒爷 阅读(2208) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 12 下一页