zoukankan      html  css  js  c++  java
  • Golang协程实现流量统计系统(3)

    进程、线程、协程

    - 进程:太重

    - 线程:上下文切换开销太大

    - 协程:轻量级的线程,简洁的并发模式

    Golang协程:goroutine

    Hello world

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello world!")
    }

      

    Golang协程特性实践

    - go发起一个协程

    - channel协程间通信,通道

    - buffered channels具备缓冲队列的通道

    go协程和channel初次使用

    package main
    
    import (
    "fmt"
    )
    
    func main() {
        message := make(chan string)//定义一个string型的channel
        go func() {
            message <- "hello goroutine!"
        }()
        
        fmt.Println( <- message )
        fmt.Println("Hello world!")
    }

    多个协程

    package main
    
    import (
        "fmt"
        "time"
    )
    
    func main() {
        message := make(chan string) //定义一个string型的channel
        go func() {
            message <- "hello goroutine!"
        }()
        go func() {
            time.Sleep(2 * time.Second)
            str := <-message
            str = str + "I'm goroutine!"
            message <- str
        }()
        time.Sleep(3 * time.Second)
        fmt.Println(<-message)
        fmt.Println("Hello world!")
    }

      

      

  • 相关阅读:
    [POJ 1269]Intersecting Lines
    [POJ 3304]Segments
    [HNOI 2011]数学作业
    [UOJ 12]猜数
    [UOJ 282]长度测量鸡
    [HAOI 2007]理想的正方形
    [POJ 2318]TOYS
    [SDOI 2009]HH的项链
    [USACO 12DEC]Running Away From the Barn
    [HDU 2036]改革春风吹满地
  • 原文地址:https://www.cnblogs.com/xinrong2019/p/11844949.html
Copyright © 2011-2022 走看看