Process程序 Thread執行緒

2021-12-29 22:01:13 字數 1575 閱讀 3885

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.diagnostics;

namespace 程序process

//通過程序來開啟一些應用程式 //通過指定文件或應用程式檔案的名稱來啟動程序資源:引數是:要在程序中執行的文件或應用程式檔案的名稱。

process.start("calc"); //開啟計算器

process.start("mspaint"); //開啟繪圖工具

process.start("iexplore",""); //開啟瀏覽器,開啟百度

//通過程序來開啟一些檔案

process p = new process();

//並指定啟動程序時使用的諸如應用程式或文件的檔名。

processstartinfo psi = new processstartinfo(@"c:\program files (x86)\tencent\qq\qqprotect\bin\qqprotect.exe");

//startinfo:它表示啟動該程序時要使用的資料

p.startinfo=psi;

p.start(); //啟動程序}}

}執行緒using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading;

namespace thread執行緒

console.readkey();

}//單執行緒的也就是程式執行時,所跑的程式路徑(處理的東西)是連續順序下來的,必須前面的處理好,後面的才會執行到。(這樣容易發生「假死」等問題。例如:乙個前台執行緒沒有執行完畢,程式怎麼都無法退出,卡在那裡不動,造成假死,非要等前台執行緒都執行完畢了,才能退出程式。又例如:乙個控制台程式,程式一開始便啟動了10個執行緒,每個執行緒執行5秒鐘時間。由於執行緒的isbackground屬性預設為false,即它們都是前台執行緒,所以儘管程式的主線程很快就執行結束了,但程式要到所有已啟動的執行緒都執行完畢才會結束)

//而多執行緒的目的就是讓計算機「同時」做多件事,節約時間。多執行緒是一種提高程式執行效率和效能的常用技術

static void main(string args)

//在.net下是不允許跨執行緒訪問的。解決跨執行緒訪問的方法是:control.checkforillegalcrossthreadcalls = false;

//這個checkforillegalcrossthreadcalls屬性指示是否捕獲對錯誤執行緒的呼叫,如果false 就表示不檢查對錯誤執行緒的呼叫。如果是true就表示檢查對錯誤執行緒的呼叫。【這個control類是:winform中所有控制項的基類】

thread.sleep(3000);//讓當前執行緒停止3秒後再執行。

console.writeline("hellow world");}}

}



Process 和 thread 的區別

日期 2013年4月24日 程序 process 和執行緒 thread 是作業系統的基本概念,但是它們比較抽象,不容易掌握。最近,我讀到一篇材料,發現有乙個很好的模擬,可以把它們解釋地清晰易懂。1.計算機的核心是cpu,它承擔了所有的計算任務。它就像一座工廠,時刻在執行。2.假定工廠的電力有限,一...

Process和Thread在指定CPU執行

最近幫朋友寫了乙個多執行緒程式,他那邊一執行多執行緒就出錯,我這邊卻沒有任何問題,找了好久才找到解決方法,原來是cpu的問題,有朋友遇到同樣的問題,可以一起參考 程序與指定cpu繫結 setprocessaffinitymask getcurrentprocess dwmask 執行緒與指定cpu繫...

Linux的程序管理,process

程序間的常用訊號1 sighup 如果程序終止則結束通話該程序 2sigint 從鍵盤ctrl c中斷程序 9sigkill 強制終止程序 15sigterm 正常終止程序 17sigstop 從鍵盤ctrl z暫停程序 詳細見man 7 signal 程序管理相關命令 ps顯示當前程序資訊 top...