zoukankan      html  css  js  c++  java
  • webwork

    代码结构,html页面引入两个js文件,work.js和main.js

    work.js

     1 (function () {
     2     onmessage = function (e) {
     3         var num = e.data;
     4         var result = 0;
     5         for (var i = 0; i < num.length; i++) {
     6             result += i;
     7         }
     8         postMessage(result);
     9     };
    10 })();

    main.js

    1 (function () {
    2     var work=new Worker("work.js");
    3     work.postMessage("ab");
    4     work.onmessage=function (e) {
    5         console.log(e.data);
    6     }
    7 })();

    效果:控制台输出 1

    原理解释:

      首先main中引入一个js文件,并向其发送数据(postMessage),目标文件获取数据(onmessage),(数据保存在e.data里),处理数据后又把数据返回给主函数(postMessage),主函数通过(onmessage),又获取到了它传送来的数据,并输出。。

      总归,多线程,不同线程不停的进行数据来往。webwork,分别通过onmessage和postMessage来回传递数据,从而实现了多线程。

    题外话,这个类似node下的get和post方法下的req和res,毕竟node和webwork都是异步通讯,原理也就类似。。

  • 相关阅读:
    golang 用tar打包文件或文件夹
    golang 最和谐的子序列
    golang 轮训加密算法
    golang map
    golang 队列
    golang 栈操作
    golang 多维数组
    golang 数组反转
    c# sendmessage control to scroll
    c# 启动的时候向其他程序传值
  • 原文地址:https://www.cnblogs.com/chenluomenggongzi/p/6108288.html
Copyright © 2011-2022 走看看