请教如何学习与理解多线程? - V2EX
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 4793 次点击
    这是一个创建于 4760 天前的主题,其中的信息可能已经有所发展或是发生改变。
    对多线程比较头疼,一直都不能很好的理解它。

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

    麻烦给点意见或推荐一些文章、书籍,谢谢!
    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     Solana     1284 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 17:10 PVG 01:10 LAX 09:10 JFK 12:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86