3
请教下, 用 Python 调用 goroutine 实现的线程池, 做一些 http 请求可行吗
source link: https://www.v2ex.com/t/786883
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
21 条回复 • 2021-07-01 23:43:22 +08:00
CEBBCAT 1 天前 via Android
是不是就我一人儿没听懂?线程池一般不都是进程内部的吗?进程内部应该就是一个二进制吧,那还怎么跨语言调用呢? ddl/so ?
可以讲讲为什么这样设计吗?
可以讲讲为什么这样设计吗?
youngce 23 小时 14 分钟前
槽点有点多,“goroutine 实现的线程池“ 不应该是协程池吗?
话说回来,假如你用 python 去调 golang,中间走 http 协议,怎么说也要花费个 20ms,python 的 CPU 性能再怎么拉胯也比多一次网络 IO 强吧
话说回来,假如你用 python 去调 golang,中间走 http 协议,怎么说也要花费个 20ms,python 的 CPU 性能再怎么拉胯也比多一次网络 IO 强吧
Vegetable 19 小时 20 分钟前
dreampuf 19 小时 11 分钟前
可行,问题是从哪里开始,由 Golang serve HTTP listen 还是 Python?
如果是前者可以考虑 Python embedded Golang 的实现,参考 https://github.com/a-tal/httpy
如果是后者,可以在标准的 Python Webservice 之后将 request/response 的 fd 转给 golang 参考 https://github.com/vladimirvivien/go-cshared-examples
但是无论如何,就你提到的都是 IO 密集型任务,最终都会被转嫁成为 IO 更密集型任务。
你这个问题背后可能是对于 GIL 的不满,或者是觉得 Complied language 的灵活度的抱怨。这些都可以拆分成更细的领域去解决。当然直接混合两个运行时环境除了 ROI 不高,也没有什么问题。
如果是前者可以考虑 Python embedded Golang 的实现,参考 https://github.com/a-tal/httpy
如果是后者,可以在标准的 Python Webservice 之后将 request/response 的 fd 转给 golang 参考 https://github.com/vladimirvivien/go-cshared-examples
但是无论如何,就你提到的都是 IO 密集型任务,最终都会被转嫁成为 IO 更密集型任务。
你这个问题背后可能是对于 GIL 的不满,或者是觉得 Complied language 的灵活度的抱怨。这些都可以拆分成更细的领域去解决。当然直接混合两个运行时环境除了 ROI 不高,也没有什么问题。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK