執行緒 執行緒池 Timer 事件的理解與區別

2022-03-08 23:35:08 字數 2231 閱讀 2668

首先明確什麼時候用多執行緒?

多執行緒是提高cpu的利用率,只有當cpu空閒時間比較多情況下,才能體現出多執行緒的優勢。

執行緒:執行緒是程序的組成單位。

主要步驟:

① 例項化threadstart物件,引數是執行緒將要執行的方法。

② 編寫執行緒將要執行的方法。

③ 例項化thread物件,引數是剛才例項化threadstart的物件。

④ thread物件啟動,

執行緒的例子:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.threading;

namespace threadtest

private static int interval;

private void form1_load(object sender, eventargs e)

public void examplemethod() 計算器:", name, i);}}

}}}執行緒池:比執行緒在使用資源的方面更優化合理一些。

主要步驟:

① 例項化waitcallback乙個物件,引數是要執行的執行緒池的方法。

② 編寫執行緒池要執行的方法。

③ 把任務排入執行的佇列,例如threadpool.queueuserworkitem(wc1, 1);。

執行緒池的例子:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.threading;

namespace thread

private void form1_load(object sender, eventargs e)

public static void examplemethod(object status)

執行中", (int)status);

// thread.sleep(1000);}}

public static void examplemethodtwo(object status)

", (int)status);

// thread.sleep(1000);}}

}}timer:

這裡指system.threading.timer,主要指在多長時間間隔執行方法體。

timer主要步驟:

① 例項化timercallback物件,引數是timer執行的方法。

② 編寫timer執行的方法。

③ 例項化timer物件,引數是剛才的timercallback物件。

timer例子:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

using system.threading;

namespace mytimertest

private void form1_load(object sender, eventargs e)

void timer_elapsed(object sender)}}

}事件

事件主要是特定的動作觸發而執行方法體。

事件源、監聽、觸發的方法體三個元素構成。

理解執行緒池

建立執行緒池的一種方式 threadpoolexecutor threadpoolexecutor new threadpoolexecutor corepoolsize,maximumpoolsize,keepalivetime,unit,workqueue,threadfactory,handl...

理解執行緒池

為什麼要使用執行緒池?我們使用乙個執行緒的步驟 1.建立執行緒 2.使用執行緒 3.銷毀執行緒 每使用乙個執行緒必須經過這三個步驟,如果步驟1,和步驟3所需要的時間和大於步驟2,我們就得思考,會不會本末倒置,怎麼樣提高效能?縮短建立和銷毀執行緒的時間!當乙個執行緒完成自己的工作後,不去銷毀它,讓它繼...

執行緒池的理解

原來一直對執行緒池心存疑惑.第乙個疑惑是.執行緒類在例項化的時候就已經指定了run函式了,也就是說,乙個執行緒在例項化的時候,他能做什麼就已經定下來了,要做別的事,就要新開乙個執行緒.這感覺就和執行緒池的思想違背了,怎麼樣從執行緒池裡面拿乙個執行緒出來就可以執行呢?執行完了然後再放回去呢?第二個疑惑...