Python 如何避免线程间的全局锁 GIL 进行并行计算?

threebr:我现在有一个串行的代码,长这样:

for t in range(100000):
    A(t+1) = fun_A(B(t))
    B(t+1) = fun_B(A(t))

fun_A(), fun_B() 是我自己写的两个函数,分别需要上一个循环中对方的输出作为输入。

现在有没有办法将 fun_A(), fun_B() 在一个循环内并行执行?用多线程的话因为 CPython 存在全局锁可能实际上是串行执行,多进程的话不知道会不会额外增加两个函数间的数据传递的 I/O 开销。

各位有没有什么其他实现的思路?

SingeeKing:这是典型的用 Python 必有额外开销的问题。换语言吧

wander639:用 go 实现吧

threebr:@SingeeKing
@wander639

换语言我个人的时间成本太高了,效果也难以估计,只能是最后的办法

Python 哪个库求反三角函数能返回角度值?

Hlianbobo:python 哪个库求反三角函数能返回角度值?网上查了结果返回的都是弧度值RockShake:转换一下就好了啊 SingeeKing:你的初中数学老师棺材板该压不住了… 她绝对讲过弧度和角度的换算 way2explore2:对的同一楼上,自己转换 jinliming2:角度=弧度*180/π Mindjet:@SingeeKing #2 …

Python 如何查某关键词在百度网页第几页?

cizimo:例如,在百度搜索 XXX 关键词后,想知道包含 YYY 的词在搜索结果的第几页? 这个能做到吗? 或者说有没有教程,砸一个链接给我呗,谢谢大家啦

Python 有没有监听鼠标点击网页相关元素的包呢?

18870715400:具体需求 比如说打开了 www.baidu.com ,当你鼠标点击了“百度一下”就可以获得这个对应的 id 或者是对应的 xpath 语法 如果没有对应的包,那么有什么可以具体实现的思路呢?

Python 现在最好用的包管理是啥?

maichael:最近为了给测试搭自动化测试,重新开始搞起 Python,但是整体工程结构比较苦恼。 重点是版本管理,requirements.txt 感觉不怎么好用。Pipenv? Tox? 还是其它的啥? 以及像 package.json 里 scripts 的用法,python 有类似的吗?cdyrhh:poetry

Python 如何优雅地处理子线程异常?

Te11UA:目前比较多的做法还是如下,出于担心未知异常、没有记录日志就退出子线程的情况下,在函数用一个大的 try-except 来进行 handle,或者是将主要逻辑放到 test_sth 中,使用 try-except 来捕获: def run(): try: test_sth() ... except Exception: log_exception…