手机号码为151*****671的用户, 现在她通过我站悬赏问答网发布了一个紧急帮助信息,标题是:【协程到底是什么,它在开发中有什么优势?】,具体需求内容是【一直听说协程这个词,听说可以实现高并发,他的原理是什么样的呢,跟多进程和多线程有...】,但是由于本站人力物力有限,由于其问题太过于专业性太强,也或者是我们根本无暇顾及该用户的具体需求,导致本站根本无法为该用户提供最有效的服务。现在她(他)通过本站悬赏问答网平台发布了这一需求,希望有能人之士能够帮他解决这一个问题,并愿意付出10元作为报酬,不甚感激。
如果您觉得这个提问很好,可以点击左方的按钮进行推广,支持微信,短信和邮件推广。
注:10元只是象征性的价格标示,不代表实际成交价格,实际成交价格以能回答之人的定价为准。如果答案确实好,并且列出了一部分可信的免费内容(足以让购买回答答案者用户放心购买),则您可以放心购买。如果通过本站购买产生了交易纠纷,本站愿意承担一切线上交易的成交财务风险(限定在悬赏以后发生的购买金额范围以内,不承担线下交易的人身风险以及财务风险等任何风险)。
如果你无法确定或者不知道回答的内容是不是你想要的,可以在线咨询回答者以确定具体情况,根据具体情况请回答者做必要的修改或者补充。 如果确实已经发生了交易纠纷,您可以联系本站 仲裁处理。
协程(coroutine) 是一种不基于线程的并行编程模型, 它并不是一个新鲜事物, 而是早在unix时代就出现了, 近来又重新引起人们的重视。
和线程相比, 协程有以下优点:
(1) 由用户控制“协程” 的调度, 不需要任何的线程同步操作, 不存在多线程死锁、同步,资源竞争等问题。
(2) 和线程相比, 调度的开销非常小, 可以同时创建大量的协程。
(3) 编程模型简单, 容易写出结构清晰的程序。
协程与线程对比
1 本地资源效率对比
从进程组成来看,一个进程是一个多元组,P=(p,h,f,c,s)。其中P代表进程;p是可执行的程序代码、程序数据与堆栈;h和f分别是执行程序代码需要的硬件和软件资源;硬件资源包括CPU、特殊功能寄存器、内存和磁盘等;软件资源包括内核数据结构以及相关所有信息资源;s代表进程运行的各种状态;c是程序运行期间需要的控制信息。
从进程创建过程来看,进程创建所需要的时间和资源比较多;而从CPU 执行程序需要的上下文考虑,只需要程序计数器、执行堆栈、通过寄存器和状态标志,由此对于进程单位进行细分形成线程。而协程通过外部控制,自己控制堆栈和状态,从而更加精简。相对于进程和线程,协程更加的轻量级,在创建和切换上耗费的资源更小。多线程共享同一地址空间和其他资源,由于线程有进程的某些性质,所以被成为“轻量级进程”,而协程处于同一线程之内,共享一个线程数据,被称为“轻量级的线程”。
另附上附件3份,以便您加深理解。