zoukankan      html  css  js  c++  java
  • go语言练习:通道、协程

    1.通道的简单例子:

    package main
    
    import "fmt"
    
    func main()  {
    	channel:=make(chan string)     //创建了一个通道对象
    	go func() {channel<-"hello world!!!"}()    //向通道对象传递数值
    	go func() {channel<-"test"}()
    	msg:=<-channel 	//从通道对象接收数值
    	fmt.Println(msg)    //test
    	msg1:=<-channel
    	fmt.Println(msg1)     //hello world!!!       后面接收到的数值覆盖前面接收到的数值,后面会学习设置缓冲
    }
    /*
    上面的例子得出以下几个结论:
    1.当向没有缓冲的通道发送多个值时,后面先接收到的时候最后发送的值,然后接收到的是前面发送的值
    2.如果接收次数,超过发送的数量,编译无法通过
    3.可以设置缓冲区 channel:=make(chan string,2) 可以设置成1-n的任意数值,当然不要太大
     */
    

    后面还有工作池的内容,后面再仔细学习

  • 相关阅读:
    《需求分析与系统设计》第二篇阅读体会
    《需求分析与系统设计》第一篇阅读体会
    《编写有效用例》第二篇阅读体会
    项目目标文档
    字符流
    字节流
    递归
    File类
    JDBC接口和工具类
    异常
  • 原文地址:https://www.cnblogs.com/chenadong/p/9057354.html
Copyright © 2011-2022 走看看