类似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. F800上的CPU有多少个core?

    本来想看看F800的一个节点上,每个core的cpu的使用情况.使用下面的命令,可以进行查看: top –P 从命令输出来看,好像是有32个core嘛. 使用下面的命令可以看到具体的CPU的信息. d ...

  2. Vert.x入门教程之Hello World

    http://blog.csdn.net/caihuangshi/article/details/51648182

  3. 操作argc, argv的经典写法

    [问题] 我在看boost源代码的时候看到如下的代码, template<class charT> basic_command_line_parser<charT>:: bas ...

  4. WIN10平板 如何关闭自动更新

    运行,services.msc打开组策略 找到Windows Update,设置启动类型为禁用即可

  5. SQL Server连接错误1326

    全新的SQL Server 2017,在2018年末才安装上,不过使用它来管理并不复杂的几张表,占用相对较多服务器资源,确实是有些大材小用. 无论如何,安装还是比较顺利.记得2012年第一次安装SQL ...

  6. Python根据多个空格Split字符串

    下面的String: 1 沪1 上海市 1850 1350 400 1300 1186/1644(嘉定约100,松江69 奉贤68 2007年上海常住人口1858万人,户籍人口1378.86万人,来沪 ...

  7. 云主机IO性能测试

    1:数据读取速度 ucloud云主机最低224.8MB/S,最高508.8MB/S,平均410.7MB/S     阿里云主机最低17.4MB/S, 最高189.6MB/S,平均170.6MB/S   ...

  8. redis性能测试报告

    服务器配置:16核心,64G 250个并发读:250个并发写性能[内容8千byte] 163为读:164为写:

  9. Ethereum Dapp Tutorial — Part 1

    在上一篇文章中,通过和传统的 web程序相比较解释了以太坊平台的结构.作为一个开发者,学习新技术的最好的方式就是构建一个玩具程序. 在这篇文章中我们将会构建一个简单的“hello word”程序,这个 ...

  10. 如何修改mac的root密码

    mac如果密码忘了,可以同过几个命令重置root密码.前提是你有执行sudo权限的用户: jackdeMacBook-Air:~ jack$ sudo bash jackdeMacBook-Air:~ ...