zoukankan      html  css  js  c++  java
  • golang语言示例

    package main
    import "fmt"
    
    /* my first programmer in go */
    func fib(n int) int{
        if n<2{
            return n
        }
        return fib(n-1)+fib(n-2)
    }
    
    func max(x, y int) int{
        if x>y{
            return x
        }
        return y
    }
    
    func main(){
        var i int
        fmt.Println("Hello, world!")
        for i=0;i<10;i++{
            fmt.Printf("%d	", fib(i))
        }
        fmt.Println(max(12, 545))
    }
    

      生产者-消费者模式

    package main
    
    import (
            "fmt"
            "math/rand"
            "time"
    )
    
    // 数据生产者
    func producer(header string, channel chan<- string) {
         // 无限循环, 不停地生产数据
         for {
                // 将随机数和字符串格式化为字符串发送给通道
                channel <- fmt.Sprintf("%s: %v", header, rand.Int31())
                // 等待1秒
                time.Sleep(time.Second)
            }
    }
    
    // 数据消费者
    func customer(channel <-chan string) {
         // 不停地获取数据
         for {
                // 从通道中取出数据, 此处会阻塞直到信道中返回数据
                message := <-channel
                // 打印数据
                fmt.Println(message)
            }
    }
    
    func main() {
        // 创建一个字符串类型的通道
        channel := make(chan string)
        // 创建producer()函数的并发goroutine
        go producer("cat", channel)
        go producer("dog", channel)
        // 数据消费函数
        customer(channel)
    }
    

      

  • 相关阅读:
    奉上简单的.Net后端开发模板
    C#之委托如此简单
    cordova环境搭建
    Linux实现免密码登录
    RHEL7网络管理NetworkManager和nmcli指令
    RHEL7中配置本地YUM软件源
    RHEL7 网口绑定Network Teaming
    Linux工具之top
    Linux工具之ss
    linux工具之lsof
  • 原文地址:https://www.cnblogs.com/zhengze/p/10730300.html
Copyright © 2011-2022 走看看