爲了比較並行和串行計算模式下的運行時間,我將小寫字母轉換爲大寫字母。對於並行模式,我運行2個線程並獲得運行時間。 現在並行運行時間大於串行。 我的代碼有什麼問題?並行編程代碼c#和運行時間
public void thread1()
{
for (int k = 0; k < Len; k = k + 2)
{
string sr1 =chars[k].ToString();
pchars[k] = sr1.ToUpper();
}
}
public void thread2()
{
for (int q = 1; q < Len; q = q + 2)
{
string sr2 = chars[q].ToString();
pchars[q] = sr2.ToUpper();
}
}
private void button2_Click(object sender, EventArgs e)
{
read_array();
var time2 = Stopwatch.StartNew();
Thread t1 = new Thread(new ThreadStart(thread1));
Thread t2 = new Thread(new ThreadStart(thread2));
t1.Start();
t2.Start();
time2.Stop();
lbl1.Text = (time2.Elapsed.TotalMilliseconds).ToString("ms");
Thread.Sleep(1);
}
}
簡而言之:平行並不總是更快。創建和維護多個線程會產生一些開銷成本(並且在小規模任務中尤其明顯)。 –