V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
mozillazg
V2EX  ›  Python

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

  •  
  •   mozillazg ·
    mozillazg · 2012-12-06 20:37:49 +08:00 · 4229 次点击
    这是一个创建于 4362 天前的主题,其中的信息可能已经有所发展或是发生改变。
    对多线程比较头疼,一直都不能很好的理解它。

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

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

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

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

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

    @holsety 谢谢,我会去查看 GIL 的相关资料的。
    lts9165
        10
    lts9165  
       2012-12-07 21:28:31 +08:00
    哈哈,我记得有人调侃python,就是说,和写python的聊多线程~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   996 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:49 · PVG 04:49 · LAX 12:49 · JFK 15:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.