發布支持多線程的PowerShell模塊 —— MultiThreadTaskRunner


應用場景

多線程在需要批量處理一些任務的時候相當有用,也更加有利於充分利用現有計算機的能力。所有主流的開發語言都支持多線程。

默認情況下,PowerShell作為一個腳本語言,是不支持多線程操作的,雖然有所謂的后台任務,但實際上控制起來相當麻煩。

 

解決方案

我很喜歡PowerShell,所以為此專門寫了一個自定義的模塊,來實現多線程的功能。該模塊使用C#編寫,源代碼可以在下面的地址訪問到

https://github.com/chenxizhang/MultiThreadTaskRunner

image

 

與此同時,這個模塊已經打包發布到微軟官方的PowerShell Gallery中

https://www.powershellgallery.com/packages/MultiThreadTaskRunner/1.0

image

 

如何使用

要使用該模塊,首先需要進行安裝(請用管理員身份打開PowerSehll)

Install-Module -Name MultiThreadTaskRunner

 
接下來,准備一個用來測試的腳本塊

$script ={

param($obj);

Write-Host $obj

}

請注意,這里只是用最簡單的代碼做了實現,根據傳入的一個參數,輸出數據

 

第三步,就可以進行快速使用了

New-MultiTaskJob –Source 1..100 –Block $script –ThreadCount 10

這個命令的意思是指,用10個並行的線程,處理傳入的100個數字,實際上每個線程分配得到的數字是10個,然后使用此前定義好的腳本塊執行它

image

請注意,你可以看到此時輸出的結果並不是按照1到100的順序進行,這個可以證明實際上這些數字是被不同的線程進行處理的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM