我實現了3個排序算法,我想並行運行它們,並在完成後立即打印它們的console.log
。我嘗試使用parallel
函數使用異步庫(https://github.com/caolan/async),它似乎不像我期望的那樣行事。我看到了一些關於產生子進程的主題,但是在執行下一個進程之前似乎總是等待一種結束;它始終按執行的順序打印。不管執行順序如何,我認爲我的快速排序會在較慢的排序之前進行打印。是否有可能通過node.js實現這種行爲?如果是這樣,怎麼樣?如果不是,爲什麼不呢?如何運行並行排序算法?
1
A
回答
0
我真的很喜歡這個庫:http://adambom.github.io/parallel.js/
你可以使用它像這樣(從文檔):
var slowSquare = function (n) {
var i = 0;
while (++i < n * n) {}
return i;
};
// Create a job
var p = new Parallel(100000);
// Spawn our slow function
p.spawn(slowSquare).then(yourCallback);
0
排序是同步操作。
由於Node.js
是單線程的,因此無法同時運行幾種並行產卵的child processes。單個Node.js
進程不能並行運行同步代碼。
你可以做的最好的事情是將每個排序算法包裝成一個元函數,它將產生一個子進程,然後將實際的排序分派給它。
你想在生產中實現並行性,那麼最好使用類似cluster的東西來保留一組工人,而不是爲每個任務產生一個新工人。
有一些即時可用庫具有類似的功能。我剛剛找到一個使用谷歌:node-compute-cluster。 Connor Black在in his answer上提到了另一個。
相關問題
- 1. 如何計算Shell排序算法的運行時間
- 2. std :: list排序算法運行時
- 3. 合併排序算法的最佳運行時間和平均運行時間
- 4. MySQL如何在一列內進行排列並運行計算?
- 5. 如何對日期執行數學運算並在Python中進行排序?
- 6. 如何並行排序?
- 7. 並行運行遺傳算法
- 8. 重構計算排序算法的運行時間 - python
- 9. 如何使對JProgressBar的並行與我的算法運行
- 10. 如何將合併排序轉換爲並行合併排序
- 11. python 2.7如何並行合併排序?
- 12. 如何並行運行序列介體
- 13. 如何運行並行COLT程序
- 14. 如何並行運行子程序?
- 15. 如何讓循環並排運行?
- 16. 並行算法檢查序列是否排序
- 17. 排序算法最適合對排序數組進行排序
- 18. 合併排序Java算法
- 19. 合併排序運行時間
- 20. 如何使用合併排序對外部排序中的運行進行排序
- 21. 快速排序算法行爲奇怪
- 22. 排序算法的錯誤行爲
- 23. 使用API進行排序或算法?
- 24. 我該如何運行knn算法並行使用r進行多分類
- 25. 氣泡排序類似算法的運行時分析
- 26. 快速排序算法運行不正常
- 27. 並行化串行算法
- 28. 爲一個已排序陣列的運行時間由選擇排序算法進行排序Vs的時間爲反轉排序的數組進行排序
- 29. 使用任務並行庫對您的排序算法排序ObservableCollection
- 30. 那是什麼的排序算法(它運行在GPU如何有效)