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

建设一个网站需要什么人员周口高端网站建设

建设一个网站需要什么人员,周口高端网站建设,高端网站建设 案例,家装公司需要装修资质吗Go语言学习——channel的死锁其实没那么复杂 - JackieZheng - 博客园 (cnblogs.com) 目录 通道 创建通道 1)无缓冲通道 2)有缓冲通道 通道的使用 1) 值从通道入口进 2) 值从通道出口出 信道死锁: 0)死锁现场0 1)死…

 Go语言学习——channel的死锁其实没那么复杂 - JackieZheng - 博客园 (cnblogs.com)

目录

通道

创建通道

                1)无缓冲通道

                2)有缓冲通道

通道的使用

               1) 值从通道入口进

               2)  值从通道出口出

        信道死锁:

                  0)死锁现场0

                  1)死锁现场1

                  1.5)总结通道死锁的两个规律。

                  2)死锁现场2

                  3)死锁现场3

            实际运行情况如下:

                解决方案

                  4)死锁现场4

                 


通道

创建通道

                1)无缓冲通道

                        channels := make( chan  string)

                                   make关键字用来创建切片  字典  通道;在这里make创建了通道类型,通道能传输的值是string类型

                                    无缓冲通道不保存值,只负责即时性的传输。当调用通道只有入口或者只有出口时,发生死锁。

                2)有缓冲通道

                        channels := make(chan string,2)

                                    有缓冲通道可以暂时存储值,channels对象可以存储2个字符串类型的变量。

                                

        

通道的使用

                   channels := make( chan  string)

               1) 值从通道入口进

                        channels <- "ping"

               2)  值从通道出口出

                        msg := <- channels

        信道死锁:

                  0)死锁现场0

                                main()单协程中匿名函数中调用无缓冲通道入口,func()并没有加go关键字变成协程。

                                main()会运行到 channels <- int(i)这一步,然后期待main()函数的主协程去接收channels传过来的i值。

                                然而main()主协程也就是它本身,自身等待自身,意思是要它在吃饭的同时还要它喝水。

                        其实把匿名方法 func(){  }外壳去掉也一样 ,因为和匿名方法无关嘛,通道的死锁只和协程之间有关。


                  1)死锁现场1

                                和死锁现场0一样。

                                main函数单协程中只有通道的入口或者出口其一。

                  1.5)总结通道死锁的两个规律。

                                      通道是在协程之间传输数据的。无缓冲通道只存在单协程中调用肯定发生死锁,因为他不能在从入口传输的过程中 又去出口接收值。这项工作至少要两个协程完成。

                                      只有通道的入口或者出口也会死锁。只有入口协程会等一个出口放值;只有出口协程会等待入口传值。


                  2)死锁现场2

                                ch2 只有入口,没有出口 。go func()线程在ch2的入口出就发生死锁。


                  3)死锁现场3

                             main()主协程执行顺序是 

                                       1) 接收 ch1 出口值 , 等待ch1入口传值完成。

                                       2)在完成主协程步骤1)后 ,

                                             再接收 ch2 出口值。

                              go func()副协程执行顺序

                                        1)从 ch2入口 传输 一个值,等待ch2出口传值完成。

                                        2)在完成副协程步骤1)后,

                                             从 ch1 入口 传输 一个值。

                        两个协程间是并行运行的,每个协程都是一个独立执行的单元,这是协程的特点。

                        mian()协程运行到 <- ch1肯定在等待一个ch1的入口传值

                        go func协程运行到 ch2 <-  "ch2 value"  也在等一个ch2的出口传值。

            实际运行情况如下:

                解决方案

                        mian()协程运行到 <- ch2肯定在等待一个ch2的入口传值

                        go func协程运行到 ch2 <-  "ch2 value"  也在等一个ch2的出口传值。

                        这个时候就是标准的双向奔赴了。


                  4)死锁现场4

                        输出完前两个值后,变成无缓冲通道,这个时候再去获取值和死锁现场0,1一样。

                 

http://www.yayakq.cn/news/15929/

相关文章:

  • dede手机网站模板制作大连模板网站制作哪家好
  • 邯郸企业做网站报价衡阳微信网站开发
  • 北京市网站备案公司百度官网优化
  • 织梦做的网站怎么传到网上展会设计公司简介
  • 网站的优势和劣势phpstudy 网站空白
  • aspnet网站开发到部署流程长尾关键词挖掘词
  • 济南做网站要多少钱绍兴模板建站代理
  • 公司网站建设的目标分销商家
  • 朔州网站建设费用注册一个网页多少钱
  • 官方网站开发公司排名扬州市城乡建设局网站首页
  • 淘宝客网站源码加各类插件西安到成都
  • 网站空间不够用好的网站设计网站
  • asp网站例子防火墙放行图片域名
  • 建立网站需要技术吗网页制作培训班培训
  • 中职教材 网站建设本地南昌网站建设公司
  • 摄影网站建设目的佛山建站怎么做
  • 适合新手做的网站静态生活服务信息类网站建设
  • 制作网站的固定成本网站推广平台
  • 做医学网站哈尔滨怎样快速建站
  • 网站前置审批怎么做网页制作基础步骤
  • 嘉兴网站模板建站印刷网站建设
  • 网站如何做担保交易木木科技 网站艰涩
  • 做微信公众号网站源码网页设计参考网站
  • 网站后台模板免费下载个人简历免费模板下载
  • 网站模板套餐电影网站html代码
  • 如何做电子商务网站买模板做网站
  • 外贸网站推广费用谷歌广告
  • 做竞价的网站可以做优化吗商务网站的主要内容
  • 江苏省建设厅政务网站阿里网站怎么建设
  • 美食网站怎样做蛋挞怎么查找关键词排名