Web Workers的多线程机制

Web Workers是浏览器提供的API,允许JavaScript在后台线程执行任务,避免阻塞主线程,提升性能。尽管受同源限制且无法操作DOM,但适用于复杂计算、Canvas渲染和流媒体数据处理。flv.js等项目利用Web Workers进行音视频处理,提高用户体验。

Blob对象用法

Blob - Web API 接口参考 | MDN

嵌入式webworkers会用到Blob

JavaScript中的Blob对象

JavaScript 中 Blob 对象 - 掘金

掘金上比较基础的一篇文章,也可以自行搜索下Blob的扩展用法

Web Workers介绍

一个Web API->浏览器能力-》提供一个js可以运行的环境

Web应用程序可以在独立于主线程的后台线程中,运行一个脚本操作

关键点:性能考虑

线程通信过程:主线程->(发送任务通知)postMessage->worker线程(接收任务通知)onMessage->doWork(做任务)->finishWork(完成任务)->(发送任务完成结果通知)postMessage主线程->主线程onMessage(接收任务结果)

 

// worker.js
function fibonacci(n) {
    if(n == 1 || n == 2) {
        return 1;    
    }
    return fibonacci(n - 2) + fibonacci(n -1);
}
postMessage(fibonacci(40));
onmessage = function (e) {
    console.log(e);
}
// webworker.js
var worker = new Worker("worker.js");
worker.onmessage = function (e) {
    console.log("worker通知的message", e);
    worker.postMessage("message收到了");
};
<!doctype html>
<html>
<head>
    <title>web workers example</title>
</head>
<body>
    <script src='./webworker.js'></script>    
</bod
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值