Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的异步javascript快速排序的执行速度不会比同步的快 我在JavaScript中编写了一个异步快速排序,以前在C++中也做过同样的操作。但这里的异步快速排序不会比同步快速排序更快。有人知道为什么会这样吗_Javascript_Multithreading_Asynchronous_Promise_Quicksort - Fatal编程技术网

我的异步javascript快速排序的执行速度不会比同步的快 我在JavaScript中编写了一个异步快速排序,以前在C++中也做过同样的操作。但这里的异步快速排序不会比同步快速排序更快。有人知道为什么会这样吗

我的异步javascript快速排序的执行速度不会比同步的快 我在JavaScript中编写了一个异步快速排序,以前在C++中也做过同样的操作。但这里的异步快速排序不会比同步快速排序更快。有人知道为什么会这样吗,javascript,multithreading,asynchronous,promise,quicksort,Javascript,Multithreading,Asynchronous,Promise,Quicksort,我尝试使用Promise.all同时执行异步函数 如果有人能解释为什么会这样,我会很高兴的D Array.prototype.swap=函数(a,b){ 设temp=a; 这个[a]=这个[b]; 这[b]=温度; } Array.prototype.partition=函数(开始、结束){ 让左=开始+1; 设right=end-1; while(true){ 而(左

我尝试使用Promise.all同时执行异步函数

如果有人能解释为什么会这样,我会很高兴的D

Array.prototype.swap=函数(a,b){
设temp=a;
这个[a]=这个[b];
这[b]=温度;
}
Array.prototype.partition=函数(开始、结束){
让左=开始+1;
设right=end-1;
while(true){
而(左<右&!(此[右]<此[开始])--右;
while(left0)this.pop();
for(设i=0;i此[i+1])返回false;
}
返回true;
};
Array.prototype.copy=函数(){
常数arr=[];
this.forEach(value=>arr.push(value));
归还这个;
};
const arr=[]生成(500000);
const syncArr=arr.copy();
const asyncArr=arr.copy();
exec();
函数exec(){
开始=新日期();
asyncArr.asyncQuickSort()。然后((res)=>{
log('async:',new Date()-start,'ms is sorted:',res.sorted());
开始=新日期();
syncArr.syncQuickSort();
log('sync:',new Date()-start,'ms is sorted:',sycarr.sorted());
});     
}

Javascript没有多线程功能,即使您使用了promise等异步函数。总之,异步函数不会同时执行。看看这篇演讲,它解释了JS中事件循环的工作原理:Promises是处理已异步任务的助手。排序没有异步性,使用承诺不会使任何东西并行运行。@Bergi我在已经异步的函数中使用承诺,对吗?我以为
js Promise。所有([func(),func()])
都应该并行执行异步函数。@PatrickHund谢谢你的快速回答:)我现在明白JavaScript没有多线程,即使你使用像Promise这样的异步函数。总之,异步函数不是同时执行的。看看这个演讲,它解释了JS中的事件循环是如何非常好地工作的:承诺是处理已经异步的任务的助手。排序没有异步性,使用承诺不会使任何东西并行运行。@Bergi我在已经异步的函数中使用承诺,对吗?我以为
jspromise。所有([func(),func()])
都应该并行执行异步函数。@PatrickHund感谢您的快速回答:)我现在明白了