V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
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 · Dec 6, 2012 · 5011 views
    This topic created in 4902 days ago, the information mentioned may be changed or developed.
    对多线程比较头疼,一直都不能很好的理解它。

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

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

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

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

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

    @holsety 谢谢,我会去查看 GIL 的相关资料的。
    lts9165
        10
    lts9165  
       Dec 7, 2012
    哈哈,我记得有人调侃python,就是说,和写python的聊多线程~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3052 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 04:08 · PVG 12:08 · LAX 21:08 · JFK 00:08
    ♥ Do have faith in what you're doing.