美文网首页
ET 单线程同步OneThreadSynchronization

ET 单线程同步OneThreadSynchronization

作者: BacteriumFox | 来源:发表于2020-10-23 17:04 被阅读0次

ET 单线程同步OneThreadSynchronizationContext

单线程同步上下文,该类继承自SynchronizationContext,并实现了Post方法。
该类主要作用是将用于收发消息的多线程同步到主线程中;
类的结构:

  • queue一个线程队列,用于存放其他线程的委托方法
  • Post方法,用于多线程调用,在线程队列中存入多线程委托方法(该方法重写自SynchronizationContext类)
  • Update方法,用于主线程调用,将线程队列中的方法出队并执行

通过上面一进一出,将多线程转换成单线程


这里简单介绍下SynchronizationContext:

SynchronizationContext在通讯中充当传输者的角色,实现功能就是一个线程和另外一个线程的通讯

Send() 是简单的在当前线程上去调用委托来实现(同步调用)。也就是在子线程上直接调用UI线程执行,等UI线程执行完成后子线程才继续执行,需要等待。
Post() 是在线程池上去调用委托来实现(异步调用)。这是子线程会从线程池中找一个线程去调UI线程,子线程不等待UI线程的完成而直接执行自己下面的代码,不需要等待。


相关文章

  • ET 单线程同步OneThreadSynchronization

    ET 单线程同步OneThreadSynchronizationContext 单线程同步上下文,该类继承自Syn...

  • JavaScript异步编程

    目录 JavaScript采用单线程模式工作的原因 单线程的优势和弊端 同步模式与异步模式同步模式异步模式同步模式...

  • 拉勾前端学习-模块一-JavaScript异步编程

    同步模式与异步模式单线程最初设计为浏览器脚本,用于操作DOM,为了避免线程同步的不问题,设计之初就采用了单线程模式...

  • JS运行机制

    参考 如何理解JS单线程? JS是单线程的,也就是说同一时间只能做一件事,看下边 单线程优先执行同步任务,同步任务...

  • Event Loop

    js是单线程,单线程中又分为同步任务,异步任务。同步任务:在主线程上执行,前面任务没有执行完毕,后面的任务将一直等...

  • 3.1KOA Promise 语法

    Promise 语法 同步与异步 我们知道,JavaScript的执行环境是「单线程」。所谓单线程,是指JS引擎中...

  • Java-API-StringBuffer

    概述 实战 StringBuffer和StringBuilder区别 StringBuilder:非同步的。单线程...

  • JavaScript运行机制详解:再谈Evemt

    1.why 单线程? JavaScript目的是与用户互动+操作DOM,非单线程带来复杂同步问题;EXAMPLE...

  • JS执行机制

    1.JS本质是单线程执行任务,但是单线程效率不高,所以将任务分成了同步任务和异步任务。 >(PS:单线程就像银行只...

  • ET帧同步消息流程

    不了解ET的,点击 (https://github.com/egametang/ET) 在ET的Demo中,只有鼠...

网友评论

      本文标题:ET 单线程同步OneThreadSynchronization

      本文链接:https://www.haomeiwen.com/subject/uezkmktx.html