• 前端常用的库和实用技术之JavaScript多线程


    多线程概念:
    多线程是指从软件或硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在
    同一时间执行多于一个线程,进而提升整理处理性能。具有这种能力的系统包括对称多处理机,多核心处理器以及
    芯片级多处理或同事多线程处理器,在一个程序中,这些独立运行的程序片段叫做线程,利用它编程的概念
    就叫做多线程处理。
    具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。

    Concurrent.Thread.js

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script src="./Concurrent.Thread.js"></script>
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <style>
        div{
             100px;
            height: 100px;
            cursor: pointer;
            background: orange;
        }
        </style>
    </head>
    <body>
        <div id="test">测试点击</div>
        <script>
      
        // 将alert1拿出来,后面有异步事件队列
        //alert(1);
        Concurrent.Thread.create(function(){
            $('#test').click(function(argument){
               alert(1);
           });
        //    下面有一段特别复杂的函数
        for(var i = 0;i<1000000;i++){
            console.log(i);
        }
        })
        </script>
    </body>
    </html>
    

    webwork

    //index.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <!-- <script src="./Concurrent.Thread.js"></script> -->
        <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
        <style>
        div{
             100px;
            height: 100px;
            cursor: pointer;
            background: orange;
        }
        </style>
    </head>
    <body>
        <div id="test">测试点击</div>
        <script>
      
        // 将alert1拿出来,后面有异步事件队列
        //alert(1);
        // Concurrent.Thread.create(function(){
        //     $('#test').click(function(argument){
        //        alert(1);
        //    });
        // //    下面有一段特别复杂的函数
        // for(var i = 0;i<1000000;i++){
        //     console.log(i);
        // }
        // })
        var worker = new Worker('task.js');
        worker.onmessage=function(event){
            alert(event.data);
        }
        worker.postMessage(100000);
        </script>
        <script>
        var worker = new SharedWorker('task.js');
        worker.post.addEventListener('message',function(e){
            console.log(e.data);
        },false)
        worker.port.start();
        worker.port.postMessage('100');
        
        </script>
    </body>
    </html>
    
    //task.js
    // onmessage=function(event){
    //     var num = event.data;
    //     var result = 0;
    //     for(var i=0;i<num;i++){
    //         result+=i;
    //     }
    //     //向线程创建源送回消息
    //     postMessage(result);
    // }
    onconnect = function(e){
        var port = e.ports[0];
        port.postMessage('connection success');
        port.onmessage = function(e){
            if(!e.data=='get'){
                for(var i=0;i<e.data;i++){
                    result++;
                }
            }
            port.postMessage(result);
        }
    }
    

    by道理都懂,这个视频不懂
    本文看自前端常用的库和实用技术之JavaScript多线程

  • 相关阅读:
    FC/NES 音乐示例程序 生日快乐歌
    FC/NES PPU卷轴滚屏示例 歌词显示
    HZK16汉字16*16点阵字库的使用及示例程序
    6502 通用宏汇编器宏汇编伪指令说明
    "在您可以登录前, 此版本的 Windows 必须被 Microsoft 激活. 你想现在激活它吗?" 在 XP SP3 中的一种解决方案
    使用 WM_COPYDATA 在进程间共享数据
    51驱动1602液晶显示器的程序
    汉字 全角字符 特殊关键字 ASCII编码区位
    actionscript(as) 项目中 使用 fla 加载 fla
    未能加载文件或程序集“WebGrease, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
  • 原文地址:https://www.cnblogs.com/smart-girl/p/11550564.html
Copyright © 2020-2023  润新知