From 850692c6d22c25490d331c687eb4e70e066015a3 Mon Sep 17 00:00:00 2001 From: luzhisheng Date: Fri, 4 Mar 2022 18:11:48 +0800 Subject: [PATCH] =?UTF-8?q?zy-=E5=A4=9A=E7=BA=BF=E7=A8=8B=E8=B0=83?= =?UTF-8?q?=E8=AF=95worker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zy-AST-原理+babel安装/AST-原理+babel安装.md | 6 +++- zy-多线程调试worker/index.html | 11 +++++++ zy-多线程调试worker/main.js | 3 ++ zy-多线程调试worker/work.js | 4 +++ zy-多线程调试worker/多线程调试worker.md | 35 +++++++++++++++++++++ 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 zy-多线程调试worker/index.html create mode 100644 zy-多线程调试worker/main.js create mode 100644 zy-多线程调试worker/work.js create mode 100644 zy-多线程调试worker/多线程调试worker.md diff --git a/zy-AST-原理+babel安装/AST-原理+babel安装.md b/zy-AST-原理+babel安装/AST-原理+babel安装.md index f713f80..af7002a 100644 --- a/zy-AST-原理+babel安装/AST-原理+babel安装.md +++ b/zy-AST-原理+babel安装/AST-原理+babel安装.md @@ -241,4 +241,8 @@ Babel 手册 a ayf { code: 'var a = "ayf";', map: null, rawMappings: undefined } - var a = "ayf"; \ No newline at end of file + var a = "ayf"; + +babel-types + + https://www.babeljs.cn/docs/babel-types \ No newline at end of file diff --git a/zy-多线程调试worker/index.html b/zy-多线程调试worker/index.html new file mode 100644 index 0000000..9147aff --- /dev/null +++ b/zy-多线程调试worker/index.html @@ -0,0 +1,11 @@ + + + + + + 测试 + + + + + \ No newline at end of file diff --git a/zy-多线程调试worker/main.js b/zy-多线程调试worker/main.js new file mode 100644 index 0000000..ebdc0a9 --- /dev/null +++ b/zy-多线程调试worker/main.js @@ -0,0 +1,3 @@ +console.log(111); +var worker = new Worker('work.js'); +worker.postMessage('ayf'); diff --git a/zy-多线程调试worker/work.js b/zy-多线程调试worker/work.js new file mode 100644 index 0000000..1626ac8 --- /dev/null +++ b/zy-多线程调试worker/work.js @@ -0,0 +1,4 @@ +console.log(self); +self.addEventListener('message', function (e) { + console.log('You said: ' + e.data); +}, false); diff --git a/zy-多线程调试worker/多线程调试worker.md b/zy-多线程调试worker/多线程调试worker.md new file mode 100644 index 0000000..982d3f4 --- /dev/null +++ b/zy-多线程调试worker/多线程调试worker.md @@ -0,0 +1,35 @@ +## 多线程 + +如何开启线程 + + console.log(111); + var worker = new Worker('work.js'); + +线程与线程传值问题 + + worker.postMessage('ayf'); + + 接收 + + console.log(self); + self.addEventListener('message', function (e) { + console.log('You said: ' + e.data); + }, false); + +拿到返回的子线程返回数据 + + self.onmessage = function (e) { + var uInt8Array = e.data; + postMessage('Inside worker.js: uInt8Array.toString() = ' + uInt8Array.toString()); + postMessage('Inside worker.js: uInt8Array.byteLength = ' + uInt8Array.byteLength); + }; + +得到几个关键词 + + 主线程 Worker onmessage postMessage + 子线程 self onmessage postMessage + +经过案例,我发现能通过搜索的上面的关键词快速的定位 + +主线程不能直接调用子线程的方法 +