探讨javascript的程序性能

本文介绍了如何在JavaScript中使用WebWorker进行任务并行处理,包括专用Worker的创建、Worker之间的消息传递机制,以及Worker生命周期中的销毁过程。
摘要由CSDN通过智能技术生成

在这里插入图片描述

如果阅读有疑问的话,欢迎评论或私信!!
本人会很热心的阐述自己的想法!谢谢!!!

Web Worker

当我们需要处理一些比较耗时的任务时,我们可能希望JavaScript可以提供多线程运行,因为当我们一直单线程运行的话可能会使我们的前台页面阻塞,严重的时候会影响我们与用户之间的交互性。

但是,像浏览器这样的环境下,可以很容易的提供多个JavaScript引擎实例,各自运行在自己的线程上。程序中每一个这样的独立的多线程部分被称为一个Worker,这种类型的并行化被称为任务并行,因为其重点在于把程序划分为多个块来并发运行。可以像下面这样实例化一个Worker:

var w1 = new Worker( " https:一个地址/...js" );

这里的URL是一个js文件,而不应该是一个HTML页面!这个文件会被加载在一个Worker中,然后浏览器启动一个独立的进程,让这个文件在这个线程中作为独立的程序运行。

这种通过URL创建的Worker称为专用Worker

Worker之间通讯

在下面代码中,Worker w1对象是一个事件侦听者和触发者,可以通过订阅它来获得这个这个Worker发出的事件以及发送事件给这个Worker。

w1.addEventListener("message",functoin(evt){})

也可以发送"message"事件给这个Worker

w1.postMessage("something")

Worker销毁

暂存…

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小井

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值