- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
44-协程:更轻量级的线程
Java语言里解决并发问题靠的是多线程,但线程是个重量级的对象,不能频繁创建、销毁,而且
线程切换的成本也很高,为了解决这些问题,JavaSDK了线程池。然而用好线程池并不容
易,Java围绕线程池了很多工具类,这些工具类学起来也不容易。那有没有更好的解决方案
呢?Java语言里目前还没有,但是其他语言里有,这个方案就是协程(Coroutine)。
我们可以把协程简单地理解为一种轻量级的线程。从操作系统的角度来看,线程是在内核态中调
度的,而协程是在用户态调度的,所以相对于线程来说,协程切换的成本更低。协程虽然也有自
己的栈,但是相比线程栈要小得多,典型的线程栈大小差不多有1M,而协程栈的大小往往只有
几K或者几十K。所以,无论是从时间维度还是空间维度来看,协程都比线程轻量得多。
支持协程的语言还是挺多的,例如Golang、Python、Lua、Kotlin等都支持协程。下面我们就
以Golang为代表,看看协程是如何在Golang中使用的。
Golang中的协程
在Golang中创建协程非常简单,在下面的示例代码中,要让hello()方法在一个新的协程中执
行,只需要gohello(World)这一行代码就搞定了。你可以对比着想想在Java里是如
何“辛勤”地创建线程和线程池的吧,我的感觉一直都是:每次写完Golang的代码,就再也不
想写Java代码了。
import(
fmt
time
)
funchello(msgstring){
fmt.Println(Hello+msg)
}
funcmain(){
//在新的协程中执行hello方法
gohello(World)
fmt.Println(Runinmain)
//等待100毫秒让协程执行结束
time.Sleep(100*time.Millisecond)
}
44-Coroutines:Morelightweight
threads
TheJavalanguagereliesonmulti-threadingtosolveconcurrencyproblems,butthreadsareheavyweight
objectsthatcannotbecreatedanddestroyedfrequently,andthecostofthreadswitchingisalsoveryhigh.In
ordertosolvetheseproblems,theJavaSDKprovidesathreadpool.However,itisnoteasytomakegooduse
ofthethreadpool.Javaprovidesmanytoolclassesaroundthethreadpool,andthesetoolclassesarenoteasy
tolearn.Isthereatersolution?ThereisnotyetintheJavalanguage,butthereisinotherlanguages.This
solutionisCoroutine.
Wecansimplyunderstandacoroutineasalightweightthread.Fromtheperspectiveoftheoperatingsystem,
threadsaresch
您可能关注的文档
最近下载
- 一例重症肺炎的循证个案护理.docx VIP
- 2025年部编人教版(统编版新教材)小学一年级上册道德与法治教学计划及进度表.docx
- 设计高效培训方案的培训课件.pptx VIP
- 老年群体数字融入的表现、阻碍及措施.pdf VIP
- DB37_T5225-2022:民用建筑太阳能热水系统一体化应用技术规程.pdf VIP
- 中医大期末考试—解剖期末复习重点.pdf VIP
- 燕京啤酒厂技改工程的环境的影响评价 素材.ppt VIP
- 土木工程施工组织设计案例加实例.pdf VIP
- 中国外汇交易中心招聘笔试题库2024.pdf
- 2025年部编人教版(统编版)小学六年级上册道德与法治教学计划及进度表.docx
原创力文档


文档评论(0)