请教如何学习与理解多线程?

2012-12-06 20:37:49 +08:00
 mozillazg
对多线程比较头疼,一直都不能很好的理解它。

请问如何才能更好的理解多线程(目标是能够在不同场景下灵活的使用多线程)?

麻烦给点意见或推荐一些文章、书籍,谢谢!
4073 次点击
所在节点    Python
10 条回复
plprapper
2012-12-06 21:58:32 +08:00
熟练的使用异步线程==》多个异步线程==》线程池
看看服务器 数据库连接池这些东西的设计 源码神码的。
kuno
2012-12-06 22:56:41 +08:00
我很怀疑这个世界上有多少人真正理解多线程.
guoxx_
2012-12-07 00:04:04 +08:00
看看 <<现代操作系统>> 里面关于线程的描述吧
holsety
2012-12-07 09:59:01 +08:00
如果这个问题,问在python节点,请自行google GIL,这是python被诟病的最大原因之一.
mozillazg
2012-12-07 12:21:20 +08:00
谢谢各位的回复,感谢已发送。
BOYPT
2012-12-07 14:09:29 +08:00
首先你需要理解“异步”这个概念。剩下不管是线程进程协程都是这个概念的实现而已。我推荐你先去接触javascript,因为你现在直接按F12(你用chrome的话)就可以有一个练手的环境,javascript的异步是随处可用随处可见的。

我当年就是先接触了js的,然后大学时候上操作系统说什么线程进程的异步执行我就觉得很自然很好理解啊,但是很多同学怎么讲都不明白,我觉得是因为这个概念问题。我以前读过《JavaScript DOM编程艺术》这本小书,第一章就是以人类思维来讲解的“异步”,如果你暂时不打算深入看js,那找pdf看看第一章也行。

「OT」 某楼莫名其妙出现个GIL关键字,貌似有显摆的嫌疑……
holsety
2012-12-07 14:42:30 +08:00
额,ok,不是显摆,请自行google,因为关于GIL的争论也很多,展开来说,可以说很多的.

简单来说,python使用了GIL,全局线程锁,即对于python来说,无论你用多少线程,实际上在某一时刻运行的也只有一个线程,而且用多线程还增加了线程切换的开销.所以python想要利用多核CPU的计算能力,仅仅考thread是不行的.
zhangxiao
2012-12-07 15:43:21 +08:00
@holsety 有用的回复,谢谢
mozillazg
2012-12-07 16:02:56 +08:00
@BOYPT 谢谢你的建议,我会去看一下 《JavaScript DOM编程艺术》 的。

@holsety 谢谢,我会去查看 GIL 的相关资料的。
lts9165
2012-12-07 21:28:31 +08:00
哈哈,我记得有人调侃python,就是说,和写python的聊多线程~

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

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

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

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

© 2021 V2EX