讨论一下requests库中session的线程安全问题?[update]
官方文档中找了很久,没有看到kenneth reitz对于session在多线程下是否线程安全的说明。GitHub上有一个类似的讨论。
问题
每个线程使用单独的requests.get(url)还是说建立一个全局的session,多个线程同时操作session.get(url)方法。我认为由于session中保存有相关的cookie等信息,每一次session.get(url)请求都会改变session中的cookie等信息,好像不行。
简单一点描述问题就是每个线程是否应该拥有独立的session?
补充
在aiohttp中有这样一句话:
Don’t create a session per request. Most likely you need a session per application which performs all requests altogether. A session contains a connection pool inside, connection reusage and keep-alives (both are on by default) may speed up total performance.
不过aiohttp是基于协程即运行在单线程中的。
更新
假设有这样一种场景,队列中有多个不同的url,(由于url不同,所以session的线程安全问题可以暂时不考虑),请问多线程共享一个全局的session好么?(类比aiohttp的建议)
即线程池共享一个session还是每个线程单独开一个session好?因为大部分网页并不涉及到登录处理等cookie问题,session的线程安全不必过多的考虑。
相关阅读:
mybatis insert into select from where 子句中的参数无法作用
linux中如何筛选一个文件中的内容在另一个文件中出现过?
关于mozjpeg,有几个疑问希望能解决一下
dom.οnclick==null,可是能触发事件,咋回事?
jquery关于异步load多个页面的问题
C语言 如何调用 pthread_create 里函数的参数?
如何在点击查询之前就显示数据?
关于LDAP的MD5加密问题
使用php怎么查询附近的人以及距离?
将一个字节转换成十六进制数是基于什么样的需要?
这实验是不是说明不同JS文件有相同的全局作用域?
PHP:crypt()函数。请问其加密后的密值有可能等于盐值么?
code MODULE_NOT_FOUND npm ERR! Cannot find module 'has-unicode'
关于C++语言头文件问题
css模块化, 如何很好的拆分
node express 获取host出错的问题
控制台报错:Uncaught (in promise) not support
在OC项目中导入swift框架的问题。
原生app里面嵌入一个web商城,请问登陆信息怎么同步?
nodejs中cookie例子的一个疑问