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

wordpress建的网站打开太慢游戏公司做网站

wordpress建的网站打开太慢,游戏公司做网站,仙居住房和城乡建设规划局网站,wordpress 创建文集1、概 述 并发是指在同一时间段内#xff0c;能够处理多个任务的能力。为了提升应用的响应速度与帧率#xff0c;以及防止耗时任务对主线程的干扰#xff0c;HarmonyOS系统提供了异步并发和多线程并发两种处理策略。 异步并发#xff1a;指异步代码在执行到一定程度后会被…1、概 述 并发是指在同一时间段内能够处理多个任务的能力。为了提升应用的响应速度与帧率以及防止耗时任务对主线程的干扰HarmonyOS系统提供了异步并发和多线程并发两种处理策略。 异步并发指异步代码在执行到一定程度后会被暂停以便在未来某个时间点继续执行这种情况下同一时间只有一段代码在执行。 多线程并发它允许在同一时间段内同时执行多段代码。在主线程继续响应用户操作和更新UI的同时后台也能执行耗时操作从而避免应用出现卡顿。 并发能力在多种场景中都有应用其中包括单次I/O任务、CPU密集型任务、I/O密集型任务和同步任务等。我们可以根据不同的场景选择相应的并发策略进行优化和开发。 ArkTS支持异步并发和多线程并发。 Promise和async/await提供异步并发能力适用于单次I/O任务的开发场景。(之前我们已经讨论过参看文章 异步场景: promise、async函数与await命令介绍) TaskPool和Worker提供多线程并发能力适用于CPU密集型任务、I/O密集型任务和同步任务等并发场景。 目前ArkTs提供的多线程并发能力都基于Actor并发模型在介绍TaskPool和Worker前我们先了解下多线程并发中的两个并发模型Actor并发模型、内存共享并发模型。 为了解释两个并发模型后文以经典的生产者消费者问题为例对比呈现这两种模型在解决具体问题时的差异。 2、Actor并发模型 Actor并发模型中每一个线程都是一个独立Actor每个Actor有自己独立的内存Actor之间通过消息传递机制触发对方Actor的行为不同Actor之间不能直接访问对方的内存空间。 ⭐️ Actor并发模型特点Actor模型不同角色之间并不共享内存生产者线程和UI线程都有自己独占的内存。 在生产者消费者问题中过程为生产者生产出结果后通过序列化通信将结果发送给UI线程UI线程消费结果后再发送新的生产任务给生产者线程。示意图如下 以下示例简单展示了如何使用基于Actor模型的TaskPool并发能力来解决生产者消费者问题【重点关注4~8行11~14行35~39行】。 import { taskpool } from kit.ArkTS;// 跨线程并发任务Concurrentasync function produce(): Promisenumber{ // 添加生产相关逻辑 console.log(producing...); return Math.random();}class Consumer { public consume(value : Object) { // 添加消费相关逻辑 console.log(consuming value: value); }}EntryComponentstruct Index { State message: string Hello World build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) Button() { Text(start) }.onClick(() { let produceTask: taskpool.Task new taskpool.Task(produce); let consumer: Consumer new Consumer(); for (let index: number 0; index 10; index) { // 执行生产异步并发任务 taskpool.execute(produceTask).then((res : Object) { consumer.consume(res); }).catch((e : Error) { console.error(e.message); }) } }) .width(20%) .height(20%) } .width(100%) } .height(100%) }} 3、内存共享并发模型 内存共享并发模型中多个线程同时执行复数任务这些线程依赖同一内存并且都有权限访问线程访问内存前需要抢占并锁定内存的使用权没有抢占到内存的线程需要等待其他线程释放使用权再执行。 ⭐️ 内存共享并发模型特点线程间共享内存内存的操作有排他性。 为了避免不同生产者或消费者同时访问一块共享内存的容器时产生的脏读脏写现象同一时间只能有一个生产者或消费者访问该容器也就是不同生产者和消费者争夺使用容器的锁。当一个线程获取锁之后其他线程需要等待该线程释放锁之后才能重新尝试获取锁以访问该容器。示意图如下 以下示例伪代码和示意图展示了如何使用内存共享模型解决生产者消费者问题。 // 此段示例为伪代码仅作为逻辑示意便于开发者理解使用内存共享模型和Actor模型的区别BufferQueue { Queue queue Mutex mutex add(value) { // 尝试获取锁 if (mutex.lock()) { queue.push(value) mutex.unlock() } } take() { // 尝试获取锁 if (mutex.lock()) { if (queue.empty()) { return null } let res queue.pop(value) mutex.unlock() return res } }}// 构造一段全局共享的内存let g_bufferQueue new BufferQueue()Producer { run() { let value random() // 跨线程访问bufferQueue对象 g_bufferQueue.add(value) }}Consumer { run() { // 跨线程访问bufferQueue对象 let res g_bufferQueue.take() if (res ! null) { // 添加消费逻辑 } }}Main() { let consumer new Consumer() let producer new Producer() // 多线程执行生产任务 for 0 in 10 : let thread new Thread() thread.run(producer.run()) consumer.run()}​​​​​​​Actor并发模型对比内存共享并发模型的优势在于不同线程间内存隔离不会产生不同线程竞争同一内存资源的问题。开发者不需要考虑对内存上锁导致的一系列功能、性能问题提升了开发效率。
http://www.hkea.cn/news/14528369/

相关文章:

  • 企业网站建设专业公司淘宝关键词排名查询
  • 通信工程网站建设wordpress 加载慢
  • 南京电商网站设计公司网店的运营模式有哪些
  • 搜索网站有哪几个线上职业技能培训平台
  • 织梦做的网站老是被黑怎么把百度放到网站上
  • wordpress 输出文章标签厦门网站流量优化价格
  • 网站建立定位企划wordpress微信qq登陆
  • 企业网站如何进行定位在线生成网页工具
  • 郴州住房和城乡建设部网站如何查找网站死链
  • 做新闻h5网站企业网站用织梦好吗
  • php mysql 网站模板扬州招标工程建设信息网
  • 网站建设讠金手指科杰南昌专业做网站
  • 江苏省和城乡建设门户网站如何查看网站的空间
  • wordpress怎么建设网站企业网盘价格
  • 电商网站建设是做什么的公主岭市住房和城乡建设局网站
  • 建设部网站注册师设计页面图片
  • 网上做期末试卷的网站网上国网app
  • 绿色模板网站小程序代理商怎么赚钱
  • 如何在网站上推广自己的链接wordpress文章无法中文版
  • 中国建设网建设通官方网站wordpress文章页加一言
  • 哪里有免费网站可以看深圳市营销策划有限公司
  • 建设一个网站需要哪些费用wordpress开发商
  • 网站可以做视频链接招牌做的好的网站
  • 苏州市相城区建设局网站重庆公共资源交易中心网
  • 企业网站建设可分为什么层次北京网站优化推广收集
  • 网站建设 推荐网站制作费用预算表
  • 爱心助学网站建设网站建设公司 青岛
  • 网站制作二级网页怎么做vi设计包含的内容
  • 建网站需要多钱mvc电子商务网站开发
  • 网站商城建设员招聘信息潍坊网站制作怎么做