1
wellsc 2021-07-01 12:12:26 +08:00 via iPhone
出了 http 还有别的方式吗
|
2
pabupa 2021-07-01 12:44:22 +08:00
emmm……试试共享内存,功能肯定可以做到
|
3
CEBBCAT 2021-07-01 12:50:49 +08:00 via Android
是不是就我一人儿没听懂?线程池一般不都是进程内部的吗?进程内部应该就是一个二进制吧,那还怎么跨语言调用呢? ddl/so ?
可以讲讲为什么这样设计吗? |
4
song135711 OP @wellsc 都是 io 密集型的任务
|
5
no1xsyzy 2021-07-01 13:12:46 +08:00 1
为什么要用次线程调度形式实现线程池?
为什么要从 Python 调用 golang 跨语言? 为什么不用 asyncio 呢? |
6
Jwyt 2021-07-01 13:19:46 +08:00
@song135711 io 密集型的,和语言速度关系不大。就像 5 楼说的直接 python 请求就好了
|
7
wellsc 2021-07-01 13:19:56 +08:00
@song135711 跟 io 密集型有啥关系?跨语言调用除了 http 还有别的更优解吗
|
8
youngce 2021-07-01 13:53:37 +08:00
槽点有点多,“goroutine 实现的线程池“ 不应该是协程池吗?
话说回来,假如你用 python 去调 golang,中间走 http 协议,怎么说也要花费个 20ms,python 的 CPU 性能再怎么拉胯也比多一次网络 IO 强吧 |
9
est 2021-07-01 13:56:28 +08:00
goroutine 是 golang 专有的吧。py 怎么个调法?
|
10
LeeReamond 2021-07-01 14:07:24 +08:00
@wellsc 老哥你回了两层了还没搞清楚状况吗...老哥在哪里高就?
|
11
wellsc 2021-07-01 14:08:45 +08:00
@LeeReamond 来,键盘给你,你来说说你怎么理解的。楼主 Python 想要调用 golang 的 goroutine 用 Http 有什么问题?
|
14
learningman 2021-07-01 17:18:34 +08:00 via Android
@wellsc 因为见过太多 XYZ 问题了
|
15
wellsc 2021-07-01 17:23:59 +08:00
@learningman 所以说你知道 x 问题是啥吗?
|
17
Vegetable 2021-07-01 17:47:43 +08:00
|
18
Trim21 2021-07-01 17:51:28 +08:00 via Android
我来猜测一下,楼主是不是要用一段 golang 代码来处理请求,但是又不会写 golang ?
|
19
dreampuf 2021-07-01 17:56:56 +08:00
可行,问题是从哪里开始,由 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 不高,也没有什么问题。 |
20
keepeye 2021-07-01 18:04:50 +08:00
你这应该用 grpc 或者 mq 实现
|
21
Deeymmm 2021-07-01 23:43:22 +08:00 1
先学语文再学代码
|
22
song135711 OP @no1xsyzy golang 写业务代码有点慢, 另外这边开发以 python 为主
|
23
song135711 OP @dreampuf 谢谢大牛, 能麻烦再给说下 ROI 全称是什么吗, 搜到一些经济学的名词
|
24
song135711 OP @Vegetable py 里使用 golang
|
25
song135711 OP @Trim21 本质上是 golang 代码来处理 python 里的请求, 写过一些 golang 代码, 不过跨运行时调用心里没底, 想看下有哪些坑
|
26
dreampuf 2021-07-02 16:09:05 +08:00
@song135711 就是你搜到的,因为资源往往不是无限的,所有的方案都会考虑一个实际投入产出比。
|
27
song135711 OP 谢谢, 学习了
|