V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
northpolepuppy
V2EX  ›  问与答

如何系统学习多线程

  •  
  •   northpolepuppy · 2020-03-18 09:55:11 +08:00 · 1341 次点击
    这是一个创建于 1703 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我对多线程只有一知半解的水平,但是说起学习来又不知道该怎么学,买了本《 C#多线程编程实战》,感觉这本书上解释的太过于生涩,完全看不懂,看完了也不知道这个类那个类到底在什么场景下使用。请各位不吝赐教,可以推荐书,也可以推荐教程,最好推荐关于 C#的,因为我现在使用的语言就是 C#

    7 条回复    2020-03-19 08:08:24 +08:00
    redford42
        1
    redford42  
       2020-03-18 10:27:19 +08:00
    蹲一个
    我 java 的也学得不行
    我的理解是多线程要运用于 io 操作频繁的地方?
    这样因为 cpu 运算速度很快,io 速度较慢,所以启动好几个线程去耗尽 cpu ?
    但是说是这么说,实际运用我想不出来啥
    limbo0
        2
    limbo0  
       2020-03-18 10:47:48 +08:00 via Android   ❤️ 1
    @redford42 比如说爬虫
    keith1126
        3
    keith1126  
       2020-03-18 11:06:19 +08:00
    系统学习的话,可以看 Operating System: Three Easy Pieces 这本书,里面的第二部分,就是讲并发的。
    sujin190
        4
    sujin190  
       2020-03-18 11:52:58 +08:00   ❤️ 1
    @redford42 #1 不要忘了现在 cpu 都是多核超线程的,就算是高 cpu 的计算用多性能也可以充分多核加速
    lights
        5
    lights  
       2020-03-18 12:31:57 +08:00
    多线程虽然是语言实现,但其思想是与操作系统结合得比较多的,建议从操作系统入手学习其思想,再用语言实现
    northpolepuppy
        6
    northpolepuppy  
    OP
       2020-03-18 20:02:20 +08:00 via iPhone
    @keith1126
    @lights
    感谢
    ho121
        7
    ho121  
       2020-03-19 08:08:24 +08:00 via Android
    多线程是为了解决什么问题?
    为什么这样做可以解决问题?
    有没有其它方式解决同样的问题,效率如何?

    以上“多线程”可以换成“互斥锁”、“信号量”等概念。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5416 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 03:42 · PVG 11:42 · LAX 19:42 · JFK 22:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.