美文网首页
2019-03-15

2019-03-15

作者: 波涛澎湃 | 来源:发表于2019-03-28 18:36 被阅读0次

    利用go语言级并发特点实现经典的卖票案例,案例:启动10个窗口模拟售卖100张车票,打印出票信息。

    
    import (
        "fmt"
        "time"
    )
    
    type ticket struct {
        no int  //票号
    }
    
    var tickets = make(chan ticket,100)
    
    func main() {
        for i:=1;i<=100;i++{
            tickets<-ticket{no:i}
        }
    
        for i:=1;i<=10;i++{
            go sale(i)
        }
        time.Sleep(time.Second*4)
        fmt.Println("over")
    }
    func sale(winNo int){
        for len(tickets)>0{
            fmt.Printf("窗口%d售卖车票号%v\n",winNo,<-tickets)
            time.Sleep(time.Microsecond)
        }
    }
    

    相关文章

      网友评论

          本文标题:2019-03-15

          本文链接:https://www.haomeiwen.com/subject/windmqtx.html