当前位置: 首页 > news >正文

企业活动网站创意案例龙潭湖网站建设

企业活动网站创意案例,龙潭湖网站建设,近期新闻热点大事件,wordpress tag静态点击查看CoroutineStart英文文档 创建协程的三种方式 runBlocking 运行一个协程并且会阻塞当前线程#xff0c;直到它完成。launch 启动一个新的协程#xff0c;不会阻塞当前线程#xff0c;并且返回一个Job#xff0c;可以取消。async async和await是两个函数#xff0c…点击查看CoroutineStart英文文档 创建协程的三种方式 runBlocking 运行一个协程并且会阻塞当前线程直到它完成。launch 启动一个新的协程不会阻塞当前线程并且返回一个Job可以取消。async async和await是两个函数这两个函数在我们使用过程中一般都是成对出现的。 async用于启动一个异步的协程任务await用于去得到协程任务结束时返回的结果结果是通过一个Deferred对象返回的。 在概念上async 就类似于 launch。它启动了一个单独的协程这是一个轻量级的线程并与其它所有的协程一起并发的工作。不同之处在于 launch 返回一个 Job 并且不附带任何结果值而 async 返回一个 Deferred —— 一个轻量级的非阻塞 future 这代表了一个将会在稍后提供结果的 promise。可以使用 .await() 在一个延期的值上得到它的最终结果 但是 Deferred 也是一个 Job所以如果需要的话你可以取消它。 CoroutineStart源码 协程的四种启动模式一DEFAULT Default——根据上下文立即调度协程执行。 如果协程上下文的[CoroutineDispatcher]从[CoroutineDispatcher. isdispatchneeded]返回’ true ’ 函数然后协程代码被调度以供稍后执行而代码被调度 被调用的协程构建器继续执行。 注意[Dispatchers。unconstrained总是从它的[CoroutineDispatcher.isDispatchNeeded]返回false 函数所以用[Dispatchers. *]启动协程。unconstrained [DEFAULT]与使用[un分派]相同。 如果协程[Job]在它有机会开始执行之前被取消那么它将不会启动它的执行但将以异常完成。 在挂起点的协同程序的可取消性取决于的具体实现细节暂停功能。使用[suspenpendcancellablecoroutine]实现可取消的挂起函数。 示例 fun main() runBlocking {val job launch (start CoroutineStart.DEFAULT){println(开始执行耗时操作...)delay(2000L)println(耗时操作结束)}delay(1000L)job.cancel()println(任务取消了) }运行结果 协程的四种启动模式二LAZY 仅在需要时才惰性地启动协程。 详细信息请参见相应协程构建器的文档 (如[launch][CoroutineScope])。launch]和[async][coroutincope .async])。 如果协程[Job]在它有机会开始执行之前被取消那么它将不会启动它的执行但将以异常完成。 fun main() runBlocking {val job async (start CoroutineStart.LAZY){println(开始执行耗时操作...)delay(2000L)println(耗时操作结束)}delay(1000L)job.cancel()println(任务取消了)job.await() }运行结果 协程的四种启动模式三ATOMIC 自动地(即以一种不可取消的方式)根据上下文调度协程的执行。 这类似于[DEFAULT]但是协程在开始执行之前不能被取消。 在挂起点的协程是否可取消取决于挂起函数如[DEFAULT]。 ExperimentalCoroutinesApi //从1.0.0开始没有稳定性的ETA fun main() runBlocking {val job async(start CoroutineStart.ATOMIC) {println(开始执行耗时操作...)//在挂起点之前不会被取消delay(2000L)//这里就是一个挂起点, delay是挂起函数println(耗时操作结束)}delay(1000L)job.cancel()println(任务取消了) }运行结果 协程的四种启动模式四UNDISPATCHED 立即执行协程直到它在当前线程中的第一个挂起点 协程是使用[dispatchers . unconstrained]启动的。但是当协程从暂停状态恢复时 根据上下文中的[CoroutineDispatcher]进行分派。 这类似于[ATOMIC]因为协程即使已经被取消也会开始执行。 但不同之处在于它在同一个线程中开始执行。 在挂起点的协程是否可取消取决于挂起函数如[DEFAULT]。 注:这是一个实验性api。当使用此模式时协程的执行语义可能会在将来发生变化。 ExperimentalCoroutinesApi //从1.0.0开始没有稳定性的ETA fun main() runBlocking {val job async(context Dispatchers.IO, start CoroutineStart.UNDISPATCHED) {println(开始执行耗时操作... ${Thread.currentThread().name})//在挂起点之前不会被取消delay(2000L)//这里就是一个挂起点, delay是挂起函数println(耗时操作结束...${Thread.currentThread().name})}delay(1000L)job.cancel()println(任务取消了...${Thread.currentThread().name}) }运行结果 从上图可以看到 async(context Dispatchers.IO, start CoroutineStart.UNDISPATCHED) 但是还在主线程执行的。 推荐 Kotlin组合挂起函数
http://www.pierceye.com/news/229300/

相关文章:

  • 不会建网站怎么赚钱dw个人主页模板
  • 自助建站系统哪个好thinkphp做的网站源码
  • 广州企业网站模板建站现在有什么网站可以做兼职的
  • 网站开发 公司百度seo公司整站优化软件
  • 沈阳学网站制作学校网络推广龙岗比较好的
  • 佛山 建站公司网站风格一般具有哪三大特征
  • 网站的二级页面怎么做济南网站建设行知科技不错
  • 网站赢利如何查看实时街景地图
  • 手表网站欧米茄官方网络平台管理制度和管理办法
  • 北京网站建设网站网站不用工具开发建设
  • 杭州做网站外包公司有哪些网站幻灯片效果
  • 北京模板建站代理好看怎么上传视频网站吗
  • 品牌网站建设小科6a蚪html制作电影网页
  • 环保网站建设维护情况报告北京seo方法
  • 网站建设及使用企业名字查重系统
  • 新乡微网站建设如果做vr参观网站
  • 昆山苏州网站建设地方门户类网站有哪些
  • 网站建设与维护 许宝良 课件企业网站建设费用会计科目
  • react做的网站有哪些帮别人推广赚钱
  • php 深圳 电子商务网站开发苏州餐饮 网站建设
  • 相机拍照的图片怎么做网站呀现在的企业一般用的什么邮箱
  • 深圳自适应网站公司wordpress更改固定链接后
  • 网站报价网站源码下载工具
  • 买个网站域名要多少钱一年网站怎么建设模块
  • 怎么用自助网站设计之家网址
  • 新浪博客发布到wordpress网站seo快速优化技巧
  • php网站换服务器最超值的手机网站建设
  • seo整站优化技术培训wordpress博客编辑器
  • 一家专做灯的网站招聘wordpress 欲思
  • 山西省建设主管部门网站app备案号查询平台官网