女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]進(jìn)程是當(dāng)前操作系統(tǒng)下一個(gè)被加載到內(nèi)存的、正在運(yùn)行的應(yīng)用程序的實(shí)例。每一個(gè)進(jìn)程都是由內(nèi)核對(duì)象和地址空間所組成的,內(nèi)核對(duì)象可以讓系統(tǒng)在其內(nèi)存放有關(guān)進(jìn)程的統(tǒng)計(jì)信息并使系統(tǒng)能夠以此來(lái)管理進(jìn)程,而地址空間則包括

進(jìn)程是當(dāng)前操作系統(tǒng)下一個(gè)被加載到內(nèi)存的、正在運(yùn)行的應(yīng)用程序的實(shí)例。每一個(gè)進(jìn)程都是由內(nèi)核對(duì)象和地址空間所組成的,內(nèi)核對(duì)象可以讓系統(tǒng)在其內(nèi)存放有關(guān)進(jìn)程的統(tǒng)計(jì)信息并使系統(tǒng)能夠以此來(lái)管理進(jìn)程,而地址空間則包括了所有程序模塊的代碼和數(shù)據(jù)以及線程堆棧、堆分配空間等動(dòng)態(tài)分配的空間。進(jìn)程僅僅是一個(gè)存在,是不能獨(dú)自完成任何操作的,必須擁有至少一個(gè)在其環(huán)境下運(yùn)行的線程,并由其負(fù)責(zé)執(zhí)行在進(jìn)程地址空間內(nèi)的代碼。在進(jìn)程啟動(dòng)的同時(shí)即同時(shí)啟動(dòng)了一個(gè)線程,該線程被稱(chēng)作主線程或是執(zhí)行線程,由此線程可以繼續(xù)創(chuàng)建子線程。如果主線程退出,那么進(jìn)程也就沒(méi)有存在的可能了,系統(tǒng)將自動(dòng)撤消該進(jìn)程并完成對(duì)其地址空間的釋放。

加載到進(jìn)程地址空間的每一個(gè)可執(zhí)行文件或動(dòng)態(tài)鏈接庫(kù)文件的映象都會(huì)被分配一個(gè)與之相關(guān)聯(lián)的全局唯一的實(shí)例句柄(Hinstance)。該實(shí)例句柄實(shí)際是一個(gè)記錄有進(jìn)程加載位置的基本內(nèi)存地址。進(jìn)程的實(shí)例句柄在程序入口函數(shù)WinMain()中通過(guò)第一個(gè)參數(shù)HINSTANCE hinstExe傳遞,其實(shí)際值即為進(jìn)程所使用的基本地址空間的地址。對(duì)于VC++鏈接程序所鏈接產(chǎn)生的程序,其默認(rèn)的基本地址空間地址為0x00400000,如沒(méi)有必要一般不要修改該值。在程序中,可以通過(guò)GetModuleHandle()函數(shù)得到指定模塊所使用的基本地址空間。

子進(jìn)程的創(chuàng)建

進(jìn)程的創(chuàng)建通過(guò)CreateProcess()函數(shù)來(lái)實(shí)現(xiàn),CreateProcess()通過(guò)創(chuàng)建一個(gè)新的進(jìn)程及在其地址空間內(nèi)運(yùn)行的主線程來(lái)啟動(dòng)并運(yùn)行一個(gè)新的程序。具體的,在執(zhí)行CreateProcess()函數(shù)時(shí),首先由操作系統(tǒng)負(fù)責(zé)創(chuàng)建一個(gè)進(jìn)程內(nèi)核對(duì)象,初始化計(jì)數(shù)為1,并立即為新進(jìn)程創(chuàng)建一塊虛擬地址空間。隨后將可執(zhí)行文件或其他任何必要的動(dòng)態(tài)鏈接庫(kù)文件的代碼和數(shù)據(jù)裝載到該地址空間中。在創(chuàng)建主線程時(shí),也是首先由系統(tǒng)負(fù)責(zé)創(chuàng)建一個(gè)線程內(nèi)核對(duì)象,并初始化為1。最后啟動(dòng)主線程并執(zhí)行進(jìn)程的入口函數(shù)WinMain(),完成對(duì)進(jìn)程和執(zhí)行線程的創(chuàng)建。

CreateProcess()函數(shù)的原型聲明如下:

BOOL CreateProcess(

LPCTSTR lpApplicationName, // 可執(zhí)行模塊名

LPTSTR lpCommandLine, // 命令行字符串

LPSECURITY_ATTRIBUTES lpProcessAttributes, // 進(jìn)程的安全屬性

LPSECURITY_ATTRIBUTES lpThreadAttributes, // 線程的安全屬性

BOOL bInheritHandles, // 句柄繼承標(biāo)志

DWORD dwCreationFlags, // 創(chuàng)建標(biāo)志

LPVOID lpEnvironment, // 指向新的環(huán)境塊的指針

LPCTSTR lpCurrentDirectory, // 指向當(dāng)前目錄名的指針

LPSTARTUPINFO lpStartupInfo, // 指向啟動(dòng)信息結(jié)構(gòu)的指針

LPPROCESS_INFORMATION lpProcessInformation // 指向進(jìn)程信息結(jié)構(gòu)的指針

);

在程序設(shè)計(jì)時(shí),某一個(gè)具體的功能模塊可以通過(guò)函數(shù)或是線程等不同的形式來(lái)實(shí)現(xiàn)。對(duì)于同一進(jìn)程而言,這些函數(shù)、線程都是存在于同一個(gè)地址空間下的,而且在執(zhí)行時(shí),大多只對(duì)與其相關(guān)的一些數(shù)據(jù)進(jìn)行處理。如果算法存在某種錯(cuò)誤,將有可能破壞與其同處一個(gè)地址空間的其他一些重要內(nèi)容,這將造成比較嚴(yán)重的后果。為保護(hù)地址空間中的內(nèi)容可以考慮將那些需要對(duì)地址空間中的數(shù)據(jù)進(jìn)行訪問(wèn)的操作部分放到另外一個(gè)進(jìn)程的地址空間中運(yùn)行,并且只允許其訪問(wèn)原進(jìn)程地址空間中的相關(guān)數(shù)據(jù)。具體的,可在進(jìn)程中通過(guò)CreateProcess()函數(shù)去創(chuàng)建一個(gè)子進(jìn)程,子進(jìn)程在全部處理過(guò)程中只對(duì)父進(jìn)程地址空間中的相關(guān)數(shù)據(jù)進(jìn)行訪問(wèn),從而可以保護(hù)父進(jìn)程地址空間中與當(dāng)前子進(jìn)程執(zhí)行任務(wù)無(wú)關(guān)的全部數(shù)據(jù)。對(duì)于這種情況,子進(jìn)程所體現(xiàn)出來(lái)的作用同函數(shù)和線程比較相似,可以看成是父進(jìn)程在運(yùn)行期間的一個(gè)過(guò)程。為此,需要由父進(jìn)程來(lái)掌握子進(jìn)程的啟動(dòng)、執(zhí)行和退出。下面這段代碼即展示了此過(guò)程:

// 臨時(shí)變量

CString sCommandLine;

char cWindowsDirectory[MAX_PATH];

char cCommandLine[MAX_PATH];

DWORD dwExitCode;

PROCESS_INFORMATION pi;

STARTUPINFO si = {sizeof(si)};

// 得到Windows目錄

GetWindowsDirectory(cWindowsDirectory, MAX_PATH);

// 啟動(dòng)"記事本"程序的命令行

sCommandLine = CString(cWindowsDirectory) + "\NotePad.exe";

::strcpy(cCommandLine, sCommandLine);

// 啟動(dòng)"記事本"作為子進(jìn)程

BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, pi);

if (ret) {

// 關(guān)閉子進(jìn)程的主線程句柄

CloseHandle(pi.hThread);

// 等待子進(jìn)程的退出

WaitForSingleObject(pi.hProcess, INFINITE);

// 獲取子進(jìn)程的退出碼

GetExitCodeProcess(pi.hProcess, &dwExitCode);

// 關(guān)閉子進(jìn)程句柄

CloseHandle(pi.hProcess);

}

此段代碼首先通過(guò)CreateProcess()創(chuàng)建Windows自帶的“記事本”程序?yàn)樽舆M(jìn)程,子進(jìn)程啟動(dòng)后父進(jìn)程通過(guò)WaitForSingleObject()函數(shù)等待其執(zhí)行的結(jié)束,在子進(jìn)程沒(méi)有退出前父進(jìn)程是一直處于阻塞狀態(tài)的,這里子進(jìn)程的作用同單線程中的函數(shù)類(lèi)似。一旦子進(jìn)程退出,WaitForSingleObject()函數(shù)所等待的pi.hProcess對(duì)象將得到通知,父進(jìn)程將得以繼續(xù),如有必要可以通過(guò)GetExitCodeProcess()來(lái)獲取子進(jìn)程的退出代碼。

相比而言,更多的情況是父進(jìn)程在啟動(dòng)完子進(jìn)程后就再不與其進(jìn)行任何數(shù)據(jù)交換和通訊,由其創(chuàng)建的子進(jìn)程的執(zhí)行成功與否均與父進(jìn)程無(wú)關(guān)。許多大型軟件在設(shè)計(jì)時(shí)也多采用了這類(lèi)思想,將某些功能完全通過(guò)獨(dú)立的應(yīng)用程序來(lái)完成,當(dāng)需要執(zhí)行某操作時(shí)只要通過(guò)主程序啟動(dòng)相應(yīng)的子進(jìn)程即可,具體的處理工作均由子進(jìn)程去完成。這類(lèi)子進(jìn)程的創(chuàng)建過(guò)程更為簡(jiǎn)單,例如對(duì)于上面那段代碼只需去除對(duì)子進(jìn)程句柄pi.hProcess的等待即可:

BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, pi);

if (ret) {

// 關(guān)閉子進(jìn)程的主線程句柄

CloseHandle(pi.hThread);

// 關(guān)閉子進(jìn)程句柄

CloseHandle(pi.hProcess);

}

可以通過(guò)dwCreationFlags參數(shù)在創(chuàng)建進(jìn)程時(shí)設(shè)置子進(jìn)程的優(yōu)先級(jí)。前面的示例代碼在創(chuàng)建子進(jìn)程時(shí)使用的均是默認(rèn)的優(yōu)先級(jí),如果要將優(yōu)先級(jí)設(shè)置為高,可以修改如下:

BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, HIGH_PRIORITY_CLASS, NULL, NULL, &si, pi);
如果在進(jìn)程創(chuàng)建時(shí)沒(méi)有特別設(shè)置優(yōu)先級(jí),可以通過(guò)SetPriorityClass()函數(shù)來(lái)動(dòng)態(tài)設(shè)定,該函數(shù)需要待操作進(jìn)程的句柄和優(yōu)先級(jí)標(biāo)識(shí)符作為入口參數(shù),函數(shù)原型為:

BOOL SetPriorityClass(HANDLE hProcess, DWORD dwPriorityClass);
對(duì)于前面沒(méi)有設(shè)定優(yōu)先級(jí)的例子代碼,可以在子進(jìn)程啟動(dòng)后由父進(jìn)程來(lái)動(dòng)態(tài)改變其優(yōu)先級(jí)設(shè)置:

SetPriorityClass(pi.hProcess, HIGH_PRIORITY_CLASS);
或是由子進(jìn)程在其啟動(dòng)后自行改變優(yōu)先級(jí)設(shè)置,需要注意的是這時(shí)進(jìn)程句柄應(yīng)設(shè)置為子進(jìn)程自身的句柄,可通過(guò)GetCurrentProcess()函數(shù)來(lái)獲?。?

HANDLE hProcess = GetCurrentProcess();

SetPriorityClass(hProcess, HIGH_PRIORITY_CLASS);

進(jìn)程的互斥運(yùn)行

正常情況下,一個(gè)進(jìn)程的運(yùn)行一般是不會(huì)影響到其他正在運(yùn)行的進(jìn)程的。但是對(duì)于某些有特殊要求的如以獨(dú)占方式使用串行口等硬件設(shè)備的程序就要求在其進(jìn)程運(yùn)行期間不允許其他試圖使用此端口設(shè)備的程序運(yùn)行的,而且此類(lèi)程序通常也不允許運(yùn)行同一個(gè)程序的多個(gè)實(shí)例。這就引出了進(jìn)程互斥的問(wèn)題。

實(shí)現(xiàn)進(jìn)程互斥的核心思想比較簡(jiǎn)單:進(jìn)程在啟動(dòng)時(shí)首先檢查當(dāng)前系統(tǒng)是否已經(jīng)存在有此進(jìn)程的實(shí)例,如果沒(méi)有,進(jìn)程將成功創(chuàng)建并設(shè)置標(biāo)識(shí)實(shí)例已經(jīng)存在的標(biāo)記。此后再創(chuàng)建進(jìn)程時(shí)將會(huì)通過(guò)該標(biāo)記而知曉其實(shí)例已經(jīng)存在,從而保證進(jìn)程在系統(tǒng)中只能存在一個(gè)實(shí)例。具體可以采取內(nèi)存映射文件、有名事件量、有名互斥量以及全局共享變量等多種方法來(lái)實(shí)現(xiàn)。下面就分別對(duì)其中具有代表性的有名互斥量和全局共享變量這兩種方法進(jìn)行介紹:

// 創(chuàng)建互斥量

HANDLE m_hMutex = CreateMutex(NULL, FALSE, "Sample07");

// 檢查錯(cuò)誤代碼

if (GetLastError() == ERROR_ALREADY_EXISTS) {

// 如果已有互斥量存在則釋放句柄并復(fù)位互斥量

CloseHandle(m_hMutex);

m_hMutex = NULL;

// 程序退出

return FALSE;

}

上面這段代碼演示了有名互斥量在進(jìn)程互斥中的用法。代碼的核心是CreateMutex()對(duì)有名互斥量的創(chuàng)建。CreateMutex()函數(shù)可用來(lái)創(chuàng)建一個(gè)有名或無(wú)名的互斥量對(duì)象,其函數(shù)原型為:

HANDLE CreateMutex(

LPSECURITY_ATTRIBUTES lpMutexAttributes, // 指向安全屬性的指針

BOOL bInitialOwner, // 初始化互斥對(duì)象的所有者

LPCTSTR lpName // 指向互斥對(duì)象名的指針

);

如果函數(shù)成功執(zhí)行,將返回一個(gè)互斥量對(duì)象的句柄。如果在CreateMutex()執(zhí)行前已經(jīng)存在有相同名字的互斥量,函數(shù)將返回這個(gè)已經(jīng)存在互斥量的句柄,并且可以通過(guò)GetLastError()得到錯(cuò)誤代碼ERROR_ALREADY_EXIST。可見(jiàn),通過(guò)對(duì)錯(cuò)誤代碼ERROR_ALREADY_EXIST的檢測(cè)可以實(shí)現(xiàn)CreateMutex()對(duì)進(jìn)程的互斥。

使用全局共享變量的方法則主要是在MFC框架程序中通過(guò)編譯器來(lái)實(shí)現(xiàn)的。通過(guò)#pragma data_seg預(yù)編譯指令創(chuàng)建一個(gè)新節(jié),在此節(jié)中可用volatile關(guān)鍵字定義一個(gè)變量,而且必須對(duì)其進(jìn)行初始化。Volatile關(guān)鍵字指定了變量可以為外部進(jìn)程訪問(wèn)。最后,為了使該變量能夠在進(jìn)程互斥過(guò)程中發(fā)揮作用,還要將其設(shè)置為共享變量,同時(shí)允許具有讀、寫(xiě)訪問(wèn)權(quán)限。這可以通過(guò)#pragma comment預(yù)編譯指令來(lái)通知編譯器。下面給出使用了全局變量的進(jìn)程互斥代碼清單:

#pragma data_seg("Shared")

int volatile g_lAppInstance =0;

#pragma data_seg()

#pragma comment(linker,"/section:Shared,RWS")

……

if(++g_lAppInstance>1)

return FALSE;

此段代碼的作用是在進(jìn)程啟動(dòng)時(shí)對(duì)全局共享變量g_nAppInstancd 加1 ,如果發(fā)現(xiàn)其值大于1,那么就返回FALSE以通知進(jìn)程結(jié)束。這里需要特別指出的是,為了使以上兩段代碼能夠真正起到對(duì)進(jìn)程互斥的作用,必須將其放置在應(yīng)用程序的入口代碼處,即應(yīng)用程序類(lèi)的初始化實(shí)例函數(shù)InitInstance()的開(kāi)始處。

結(jié)束進(jìn)程

進(jìn)程只是提供了一段地址空間和內(nèi)核對(duì)象,其運(yùn)行是通過(guò)在其地址空間內(nèi)的主線程來(lái)體現(xiàn)的。當(dāng)主線程的進(jìn)入點(diǎn)函數(shù)返回時(shí),進(jìn)程也就隨之結(jié)束。這種進(jìn)程的終止方式是進(jìn)程的正常退出,進(jìn)程中的所有線程資源都能夠得到正確的清除。除了這種進(jìn)程的正常推出方式外,有時(shí)還需要在程序中通過(guò)代碼來(lái)強(qiáng)制結(jié)束本進(jìn)程或其他進(jìn)程的運(yùn)行。ExitProcess()函數(shù)即可在進(jìn)程中的某個(gè)線程中使用,并將立即終止本進(jìn)程的運(yùn)行。ExitProcess()函數(shù)原型為:

VOID ExitProcess(UINT uExitCode);

其參數(shù)uExitCode為進(jìn)程設(shè)置了退出代碼。該函數(shù)具有強(qiáng)制性,在執(zhí)行完畢后進(jìn)程即已經(jīng)被結(jié)束,因此位于其后的任何代碼將不能被執(zhí)行。雖然ExitProcess()函數(shù)可以在結(jié)束進(jìn)程的同時(shí)通知與其相關(guān)聯(lián)的動(dòng)態(tài)鏈接庫(kù),但是由于它的這種執(zhí)行的強(qiáng)制性,使得ExitProcess()函數(shù)在使用上將存在有安全隱患。例如,如果在程序調(diào)用ExitProcess()函數(shù)之前曾用new操作符申請(qǐng)過(guò)一段內(nèi)存,那么將會(huì)由于ExitProcess()函數(shù)的強(qiáng)制性而無(wú)法通過(guò)delete操作符將其釋放,從而造成內(nèi)存泄漏。有鑒于ExitProcess()函數(shù)的強(qiáng)制性和不安全性,在使用時(shí)一定要引起注意。

ExitProcess()只能強(qiáng)制執(zhí)行本進(jìn)程的退出,如果要在一個(gè)進(jìn)程中強(qiáng)制結(jié)束其他的進(jìn)程就要用TerminateProcess()來(lái)實(shí)現(xiàn)。與ExitProcess()不同,TerminateProcess()函數(shù)執(zhí)行后,被終止的進(jìn)程是不會(huì)得到任何關(guān)于程序退出的通知的。也就是說(shuō),被終止的進(jìn)程是無(wú)法在結(jié)束運(yùn)行前進(jìn)行退出前的收尾工作的。所以,通常只有在其他任何方法都無(wú)法迫使進(jìn)程退出時(shí)才會(huì)考慮使用TerminateProcess()去強(qiáng)制結(jié)束進(jìn)程的。下面給出TerminateProcess()的函數(shù)原型:

BOOL TerminateProcess(HANDLE hProcess, UINT uExitCode);

參數(shù)hProcess和uExitCode分別為進(jìn)程句柄和退出代碼。如果被結(jié)束的是本進(jìn)程,可以通過(guò)GetCurrentProcess()獲取到句柄。TerminateProcess()是異步執(zhí)行的,在調(diào)用返回后并不能確定被終止進(jìn)程是否已經(jīng)真的退出,如果調(diào)用TerminateProcess()的進(jìn)程對(duì)此細(xì)節(jié)關(guān)心,可以通過(guò)WaitForSingleObject()來(lái)等待進(jìn)程的真正結(jié)束。

小結(jié)

多進(jìn)程是多任務(wù)管理中的重要內(nèi)容,文中上述部分對(duì)其基本概念和主要的技術(shù)如子進(jìn)程的創(chuàng)建與結(jié)束、進(jìn)程間的互斥運(yùn)行等做了較詳細(xì)的介紹。通過(guò)本文讀者應(yīng)能對(duì)多進(jìn)程管理有一個(gè)初步的認(rèn)識(shí)。



來(lái)源:ks990次

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

一個(gè)線程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線程,線程是進(jìn)程的一部分,就像工人是工廠的一部分。資源是分配給進(jìn)程的,同一進(jìn)程的所有線程共享該進(jìn)程的全部資源,就像工廠里的工人共享工廠的設(shè)備和場(chǎng)地。處理機(jī)(CPU)則是分給線...

關(guān)鍵字: 進(jìn)程 線程

DXC內(nèi)部新成立的Boomi卓越中心(COE),將成為跨行業(yè)客戶(hù)的創(chuàng)新樞紐 DXC與Boomi攜手助力客戶(hù)整合AI智能體,為規(guī)模化應(yīng)用代理式AI做好準(zhǔn)備 弗吉尼亞州阿什伯恩2025年8月19日 /美通社/ --名列財(cái)...

關(guān)鍵字: 進(jìn)程 AI BSP 自動(dòng)化

上海 2025年7月9日 /美通社/ -- 據(jù)Gartner最新研究顯示,到2025年全球?qū)⒂?5%的企業(yè)將生成式AI納入核心業(yè)務(wù)流程。這其中,人力資源領(lǐng)域因其天...

關(guān)鍵字: AI BSP 進(jìn)程 CHINA

天津2025年6月25日 /美通社/ -- 2025年6月24日至26日,世界經(jīng)濟(jì)論壇第十六屆新領(lǐng)軍者年會(huì)(夏季達(dá)沃斯論壇)在天津舉行。本屆年會(huì)以"新時(shí)代企業(yè)家精神"為主題,匯聚來(lái)自全球1700余位政...

關(guān)鍵字: 人工智能 進(jìn)程 BSP 微軟

新加坡2025年6月4日 /美通社/ -- THE GROWHUB LIMITED(簡(jiǎn)稱(chēng)"The GrowHub"或"該公司")是一家總部位于新加坡的公司,利用區(qū)塊鏈技術(shù),來(lái)提升整...

關(guān)鍵字: 人工智能 進(jìn)程 AI 供應(yīng)鏈

南京 2025年5月30日 /美通社/ -- 日前,國(guó)際獨(dú)立第三方檢測(cè)、檢驗(yàn)和認(rèn)證機(jī)構(gòu)德國(guó)萊茵TÜV大中華區(qū)(以下簡(jiǎn)稱(chēng)"TÜV萊茵"...

關(guān)鍵字: 協(xié)作機(jī)器人 進(jìn)程 測(cè)試 BSP

愛(ài)立信的人工智能(AI)專(zhuān)業(yè)知識(shí)將在一項(xiàng)嶄新的、以瑞典為重點(diǎn)的AI基礎(chǔ)設(shè)施中發(fā)揮核心作用。利用該基礎(chǔ)設(shè)施,由瑞典一批大型企業(yè)組成的聯(lián)盟將借助英偉達(dá)的計(jì)算能力,助力推動(dòng)瑞典的數(shù)字化進(jìn)程。 北京 2025年5月28日 /...

關(guān)鍵字: 愛(ài)立信 英偉達(dá) AI 進(jìn)程

線程和進(jìn)程各有其獨(dú)特的優(yōu)缺點(diǎn)。線程執(zhí)行效率高,而進(jìn)程則在安全性和資源管理方面表現(xiàn)出色。在多道程序設(shè)計(jì)環(huán)境中,進(jìn)程的并發(fā)執(zhí)行和資源共享能力得到了充分利用,從而提高了系統(tǒng)的整體效率和資源利用率。

關(guān)鍵字: 線程 進(jìn)程

深圳2025年4月17日 /美通社/ -- 4月16日,戴盟機(jī)器人正式發(fā)布革命性家族產(chǎn)品——全球首款多維高分辨率高頻率視觸覺(jué)傳感器 DM-Tac W、多維觸覺(jué)感知五指靈巧手 DM-Hand1、便攜穿戴式遙操作數(shù)據(jù)采集系統(tǒng)...

關(guān)鍵字: 進(jìn)程 DM 機(jī)器人 觸覺(jué)傳感器

進(jìn)程是操作系統(tǒng)分配資源的基本單位。它是一個(gè)正在執(zhí)行的程序的實(shí)例,包含了程序的代碼、數(shù)據(jù)、堆棧以及與操作系統(tǒng)交互的各種資源。一個(gè)程序可以運(yùn)行多個(gè)進(jìn)程,比如一個(gè)瀏覽器可以打開(kāi)多個(gè)標(biāo)簽頁(yè),每個(gè)標(biāo)簽頁(yè)就是一個(gè)獨(dú)立的進(jìn)程。

關(guān)鍵字: 進(jìn)程 線程
關(guān)閉