js 都有 worker 线程,什么时候 Python 也能增强一下线程?

2021-07-04 13:17:39 +08:00
 James369
js 脚本都有 WebWorkers 线程,让人心动。
WebWorkers 允许开发者把长时间运行和密集计算型的任务放在后台执行而不会阻塞 UI,这会使得应用程序运行得更加流畅。甚至可以用于复杂的 3D 运算任务。
同时,WebWorker 传参方式也兼顾了安全性,比如可以序列化后再传递,或者直接转移参数对象的所有权。

反观 Python,我还在纠结它的 GIL 全局锁,不知道怎么处理 CPU 密集型操作?。
4559 次点击
所在节点    Python
28 条回复
Sasasu
2021-07-04 23:48:20 +08:00
@wwqgtxx

> 目前也没有语言能实现动态大小的复杂对象基于共享内存吧

解决这个的方法叫线程
yolee599
2021-07-05 08:53:09 +08:00
你需要的不是 python,而是一个支持线程的编程语言
wwqgtxx
2021-07-05 08:57:07 +08:00
@Sasasu 这里的前提当然是特指多进程的情况下
no1xsyzy
2021-07-05 09:25:55 +08:00
@wwqgtxx 说的意思大约是其他语言可以靠线程实现,只有 Python 有 GIL 的问题,不能用线程做 CPU 密集,进程又不方便。
真要做也不是不可以,用相对指针。

@James369 Python 的特点就是快速原型。写大了用最像 Python 的高度工程化的语言 Golang 不行吗? f
matrix67
2021-07-05 09:42:59 +08:00
@James369 openstack 就是 Python 写的,大型项目,但它主要是搞调度,不是 cpu 密集型。
James369
2021-07-05 10:30:29 +08:00
@yolee599 #22
Python 本身很好用,灵活快速,第三方库又多,又简单易上手。但是就是有这个小缺陷。
相反,别的语言都在不断的进化。比如 C++,加了很多现代特性,什么右值转移、auto 类型推导、lambda 编程、async 异步编程等等。
我觉得 C++还可以再活 100 年。
hunk
2021-07-05 21:40:27 +08:00
为了多线程,果断换用 go,协程眨眼间完事
Rwing
2021-07-05 21:54:14 +08:00
c#欢迎你,另外 python 不是也有 async/await 吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/787433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX