kotlin 的协程怎么评价?协程真的比多线程好? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
insomnia1232
V2EX    程序员

kotlin 的协程怎么评价?协程真的比多线程好?

  •  1
     
  •   insomnia1232 2019-01-01 02:02:12 +08:00 via Android 993 次点击
    这是一个创建于 2480 天前的主题,其中的信息可能已经有所发展或是发生改变。
    15 条回复    2019-01-02 07:17:04 +08:00
    congeec
        1
    congeec  
       2019-01-01 02:08:14 +08:00   1
    你一不小心问了两个很大的问题
    11wangyaoda
        2
    11wangyaoda  
       2019-01-01 02:24:08 +08:00 via Android   3
    coroutine 本质是上就是 callback。
    ruandao
        3
    ruandao  
       2019-01-01 02:39:58 +08:00
    减少不必要的系统调度
    Sparetire
        4
    Sparetire  
       2019-01-01 02:44:12 +08:00 via Android
    congeec
        5
    congeec  
       2019-01-01 02:49:43 +08:00
    http://250bpm.com/blog:141
    Equivalence of State Machines and Coroutines
    yanaraika
        6
    yanaraika  
       2019-01-01 04:50:03 +08:00 via Android
    新语言现在基本都有协程了吧 回调地狱了解一下
    Cbdy
        7
    Cbdy  
       2019-01-01 08:31:23 +08:00 via Android
    所谓协程,就是用户态的线程,就是简单的状态机。然后再去和系统线程绑定既可以了
    q2577
        8
    q2577  
       2019-01-01 10:20:46 +08:00
    可以试试在当前进程的主线程里面创建多个对等线程, 然后在每个对等线程里面各创建一个子进程, 然后在每个子进程里面使用协程, 是不是晕了?
    qiyuey
        9
    qiyuey  
       2019-01-01 10:33:56 +08:00
    我的理解是,协程本质上就是 回调 + CPS 状态机,用以解决并发变成编写维护困难的问题,同时协程调度方面也具备优势,避免了不必要的上下文切换。
    DeweyReed
        10
    DeweyReed  
       2019-01-01 11:20:35 +08:00
    用编译时的变换处理 callback,这样可以很直观地写顺序执行的异步代码。
    每个语言都是自己的异步机制,Coroutine 就是 Kotlin 采取的方案。
    janxin
        11
    janxin  
       2019-01-01 12:14:41 +08:00
    看情况决定,对 IO 应用来说,肯定是要比纯线程好。减少系统调用,有效避免异步编程复杂度,上下文切换成本比线程低。

    不过问题是谁也不是只用协程,一般都是线程+协程模式。
    bluzz
        12
    bluzz  
       2019-01-01 13:03:11 +08:00 via Android
    协程无法脱离线程,协程主要就是减少线程切换和等待
    pursuer
        13
    pursuer  
       2019-01-01 13:18:10 +08:00
    个人理解,事件驱动更接近计算机工作模式,性能可能好一些,但是对编写者负担比较大,协程 /线程对编写者友好一些,多线程在使用使用阻塞 IO 时对内存的消耗有点厉害,即使线程大多数时间在等待 IO,协程可以减少一些这样的情况
    chrisyue
        14
    chrisyue  
       2019-01-01 16:32:12 +08:00
    正好昨天总结了一下自己对 PHP 协程的理解,不知道各位大神怎么评价

    https://www.chrisyue.com/what-the-hell-does-coroutine-solve.html
    lynskylate
        15
    lynskylate  
       2019-01-02 07:17:04 +08:00 via Android
    协程相比线程仅在 io 密集应用有显著优势,最大的优势在于进行 io 时主动进行协程切换,相比线程切换开销较小,当然还有协程上下文的储存相比线程小等等。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     875 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:58 PVG 04:58 LAX 13:58 JFK 16:58
    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