目测我的标题取错了但是我实茬不知道怎么用术语描述。
问题大概是这样的:在用 python 写一个五子棋 AI那么就需要玩家下一步,电脑思考电脑下一步。现在电脑思考大概需要 2 秒的时间
问题在于 GAME.moving 这里,分别有两次 put 操作我设想的情况应该是:
但是根据实际症状以及添加的调试信息来看,结果实际是这样的:
感觉没有达到拆分线程的目的请问代码思路是哪里有问题呢?
创建了三个协程总共就一个线程,通过for循环发送三个url请求然后等待结果,谁先回来就处理谁。
通过requests.get(url)发送url请求谁先回来,就拿到数据(data)拿到数据就可以处理数據了。
这都是在一个线程里执行的
gevent的使用场景举例:
1、scrapy框架内部用的gevent。发请求性能比线程高很多
2、做api(url)监控,把代码发布到哪个url嘚自动检测下返回值是不是200,或是指定的状态码
发布完成之后,就要发送http请求过去检测一下返回的状态码如果有20个url请求,就用gevent一下全給发了就没必要创建多个线程,一个线程就足以了然后配合多进程+gevent,又可以利用多颗cpu的优势了
发送http请求,是request本质上调用socket来发原来執行http请求,就会通知我一下执行完了,默认socket是没有这个功能的这相当于把原来的socket修改了,修改成特殊功能的socket发送请求如果完事了,會告诉你完事了
其实内部就是把io请求做了个封装而已。
}版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。