类似nodejs的 child_process.fork()

// index.html 主线程

  function isClose(data){
if(data === 0)
return true;
}
var myWorker = new Worker("worker.js"); myWorker.addEventListener('error',err=>{
console.log( err);
}, false); myWorker.addEventListener('message',msg=>{
// 监听子线程发来的 数据
console.log( msg.data); if( isClose(msg.data) ){
// 干掉子进程
myWorker.terminate();
}
}, false); setTimeout(function(){
// 发更子进程的数据
myWorker.postMessage('frok')
}, 2000);
// worker.js 子线程

// 加载 fn.js 文件
importScripts('fn.js'); console.log(123); // 向主线程发送 data
postMessage('over 123'); // 接收主线程发来的的数据
onmessage = (e)=>{
check(e.data);
console.log( e.data);
}
// fn.js

function check(data){
console.log( data.constructor.name );
}

动态创建server.js文件

const workerJSString = `
// 接收主线程发来的的数据
onmessage = ({data})=>{
// 向主线程发送data
console.log(\`接收到主线程发来的数据: \${data}\`);
postMessage(data ** 2);
}
`;
const workerBlob = new Blob([workerJSString], {
type: "text/javascript"
});
const url = URL.createObjectURL(workerBlob);
const myWorker = new Worker(url); // 监听子线程发来的 数据
myWorker.addEventListener("message", ({ data }) => {
console.log(data); // 9
}); setTimeout(function () {
// 向子进程的数据
myWorker.postMessage(3);
}, 2000);

js的server worker创建子进程的更多相关文章

  1. swoole之创建子进程

    一.代码 <?php /** * 进程就是正在运行的程序的一个实例 * 比如,在某个终端中执行一个PHP脚本,可以认为就是开启了一个进程,会有对应的进程id(pid) * * swoole进程与 ...

  2. Nginx学习笔记(七) 创建子进程

    Nginx创建子进程 ngx_start_worker_processes位于Nginx_process_cycle.c中,主要的工作是创建子进程. 在Nginx中,master进程和worker进程 ...

  3. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  4. node.js中ws模块创建服务端和客户端,网页WebSocket客户端

    首先下载websocket模块,命令行输入 npm install ws 1.node.js中ws模块创建服务端 // 加载node上websocket模块 ws; var ws = require( ...

  5. node.js中net模块创建服务器和客户端(TCP)

    node.js中net模块创建服务器和客户端 1.node.js中net模块创建服务器(net.createServer) // 将net模块 引入进来 var net = require(" ...

  6. nova-api源码分析(WSGI server的创建及启动)

    源码版本:H版 一.前奏 nova api本身作为一个WSGI服务器,对外提供HTTP请求服务,对内调用nova的其他模块响应相应的HTTP请求.分为两大部分,一是服务器本身的启动与运行,一是加载的a ...

  7. fork()创建子进程

    fork()系统调用是Unix下以自身进程创建子进程的系统调用,一次调用,两次返回,如果返回是0,则是子进程,如果返回值>0,则是父进程(返回值是子进程的pid) 在fork()的调用处,整个父 ...

  8. 在64位SQL Server中创建Oracle的链接服务器

    当我们同时使用SQL Server和Oracle来存储数据时,经常会用到跨库查询.为了方便使用跨库查询,一个最好的办法就是通过创建链接服务器来实现.既可以在SQL Server中创建Oracle的链接 ...

  9. sql server 脚本创建数据库邮件

    sql server 脚本创建数据库邮件代码: --脚本创建数据库邮件 --1.开启数据库邮件 RECONFIGURE WITH OVERRIDE GO RECONFIGURE WITH OVERRI ...

随机推荐

  1. WIN10平板 传递优化文件能否删除

    在给系统准备做Ghost备份之前,一般会运行一次磁盘清理,但是WIN10系统多了一个传递优化文件(现在看到的体积很小,但其实可能是4-5G) 这个文件只是WIN10改进了系统更新策略产生的,就像是BT ...

  2. WPF手动绑定事件

    this.but1.AddHandler(Button.ClickEvent,new RoutedEventHandler(OkButton_Click));

  3. Boinx FotoMagico for Mac(电子相册制作工具)破解版安装

    1.软件简介    FotoMagico 是 macOS 系统上一款非常好用的电子视频相册制作工具,FotoMagico 被誉为 Mac 上的「会声会影」,我们可以使用这款软件快速的制作出精美的音乐视 ...

  4. c++默认参数函数注意事项

    再有默认参数的函数中,一般我们都把默认参数放在声明处而不是定义处. 如果声明和定义都有默认参数,编译器将会报错. 调用含有默认实参的函数时,我们可以包含参数,也可以省略. 有默认参数的函数,我们可以不 ...

  5. windowsclient开发--为你的client进行国际化

    之前博客讲过函数: GetUserDefaultUILanguage Returns the language identifier for the user UI language for the ...

  6. 【Linux】防火墙与CentOS中的iptables

    [iptables] 参考好文:http://www.zsythink.net/archives/1199.这个博客的作者写了深入浅出的iptables介绍,基本上我就是做个他的读书笔记. ■ 基本介 ...

  7. 【转】燃烧吧,TestMice!

    ...当我们几个人碰面的时候,就感觉应该做点测试业内的实事. 记得当时的17站出了一些QTP辅件,给了我一些灵感.2008年做了一整年的QTP企业级实施,从方案到最后的收尾支持,得到最大的教训就是,当 ...

  8. (笔记)Linux内核学习(一)之内核介绍

    内核与操作系统: 内核是操作系统的核心部分,包含了系统运行的核心过程,决定系统的性能,操作系统启动内核被装入到RAM中: 操作系统与底层硬件设备交互和为运行应用程序提供执行环境. Linux内核与微内 ...

  9. QTableView 二次整理

    一.设置可视化的组件 参考: http://www.cnblogs.com/ribavnu/p/4810412.html 二.常用基本属性 http://www.cnblogs.com/ribavnu ...

  10. php中urlencode和urldecode的用法

    URLEncode:是指针对网页url中的中文字符的一种编码转化方式,最常见的就是Baidu.Google等搜索引擎中输入中文查询时候,生成经过Encode过的网页URL.URLEncode的方式一般 ...