gpt4 book ai didi

javascript - Javascript应用程序中的多线程错觉

转载 作者:行者123 更新时间:2023-11-30 16:26:18 25 4
gpt4 key购买 nike

我知道多线程在 javascript 中是不可能的,但我试图给人一种不同功能独立运行的错觉。在我的代码中,我有 3 个简单的函数。

var input1 = [10,6,5,2,6,5];
var input2 = [3,4,8,7,1,9];
var x = 0;
var y = 0;
var sum = 0;


for(i = 0; i<6; i++){
x = input1[i];
y = input2[i];
getInput(x,y);
}

function getInput(a,b){
x = a;
y = b;
getSum(x,y);
}

function getSum(j,k){
sum = j + k;
printSum(sum);
}

function printSum(i){
alert(i);
}

getInput 函数的作用应该是获取x 和y 输入并将其传递给getSum 函数。它不应该等待 getSum 和其他函数完成才能获得下一对输入。这适用于所有其他功能。它们都应该像时钟一样独立运行。现在我知道 js 是单线程的,但我想知道是否有可能设计一个循环来产生这种错觉。这是我现在的 FIDDLE .请指教。

最佳答案

无需制造假象,您可以使用 WebWorkers 获得真实的东西。

在您的主页上:

var myWorker = new Worker("worker.js");
myWorker.onmessage = function(e) {
console.log('Message received from worker', e.data);
};
myWorker.postMessage('some variable')

... worker.js:

onmessage = function(e) {
console.log('Message received from main script');
var workerResult = 'Variable: ' + (e.data);
console.log('Posting message back to main script');
postMessage(workerResult);
}

示例来自:https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers

您可以在以下位置阅读更多信息:http://www.html5rocks.com/en/tutorials/workers/basics/

还有几个可用的库,其中之一是 multithread.js

关于javascript - Javascript应用程序中的多线程错觉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34096820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com