这里是Python和爬虫的|

go无缓冲通道

package main

import (
	"fmt"
	"math/rand"
	"sync"
	"time"
)
//wg用来等待程序
var wg sync.WaitGroup

func init() {
	//设置随机数种子,加上这行代码,可以保证每次随机都是随机的
	rand.Seed(time.Now().UnixNano())
}

func main() {
	//无缓冲的通道
	court := make(chan int)

	//计数加2,表示要等待两个goroutine
	wg.Add(2)
	go player("Nadal", court)
	go player("Djokovic", court)
	//发球
	court <- 1

	//等待游戏结束
	wg.Wait()

}
func player(name string, court chan int) {
	//在函数退出时调用Done来通知函数工作完成
	defer wg.Done()
	for {
		ball, ok := <-court
		if !ok {
			//等待球被击打过来
			fmt.Printf("Player %s Won\n",name)
			return
		}
		//选随机数,然后用这个数判断我们是否丢球
		n := rand.Intn(100)
		fmt.Printf("n=%d\n",n)
		if n%13 == 0 {
			fmt.Printf("player %s Missed\n", name)
			close(court)
			return
		}
		fmt.Printf("Player %s Hit %d\n", name, ball)
		ball++

		//将球打向对手
		court <- ball

	}

}

本文作者:公众号python学习开发

本文链接:https://www.cnblogs.com/c-x-a/p/11380993.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   公众号python学习开发  阅读(256)  评论(0编辑  收藏  举报
编辑推荐:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
历史上的今天:
2018-08-20 ahttp
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起