)
多線程主要內(nèi)容1 工作者線程2 用戶界面線程3 同步線程被分為工作者線程和用戶用戶界面線程。用戶界面的線程的特點是擁有單獨的消息隊列可以具有自己的窗口界面能夠?qū)τ脩糨斎牒褪录鞒龇磻?yīng)??梢杂靡韵路椒ń⒁粋€工作者線程。UINT MyThreadProc(LPVOID pParam){…}AfxBeginThread(MyThread,..);它有六個參數(shù)第一個為控制函數(shù)第二個為啟動線程時傳給控制函數(shù)的入口參數(shù)當前線程的優(yōu)先級當前線程的棧的大小當前線程的創(chuàng)建狀態(tài)安全屬性后四個有默認值。用戶界面線程首先利用應(yīng)用程序向?qū)Ы挝臋n程序Thread,再建立Thread1 : public CWinThread,Frame1 : public CFrameWnd,可以用Ctrlw建立這兩個新類。在CThreadApp中加一個指針Thread1* pThread1在BOOL CThreadApp::InitInstance()中進行初始化pThread1 new Thread1();pThread1-CreateThread();將Thread1的構(gòu)造函數(shù)改成公有。在Thread1中加一個指針Frame1* m_pWnd然后初始化。BOOL Thread1::InitInstance(){m_pWnd new Frame1();return TRUE;}把Frame1的構(gòu)造函數(shù)改成公有在Thread.h中包含#include Frame1.h。在資源編輯器中編輯一個菜單IDR_MENU它有一個菜單項ID_BEGIN。Frame1::Frame1(){Create(NULL,Demo);ShowWindow(SW_SHOW);UpdateWindow();CMenu menu;//可以用局部變量因為以后不會用到它了,加菜單。menu.LoadMenu(IDR_MENU);SetMenu(menu);}同步多線程的一個難點是各線程間的協(xié)調(diào)。同樣的方法在CThreadApp中再開一個線程。BOOL CThreadApp::InitInstance(){。。。。。。pThread1 new Thread1();pThread1-CreateThread();pThread2 new Thread1();pThread2-CreateThread();。。。。。。}為IDR_MENU中的菜單在Frame1中設(shè)立響應(yīng)函數(shù)方法也是Ctrlw打開類向?qū)?。并在Frame1中定義一個全局整形變量n,初始值為0.HANDLE handleCreateSemaphore(NULL,0,1,he);WaitForSingleObject(handle,10000);CString str;n;str.Format(第%d次工作,n);MessageBox(str);ReleaseSemaphore(handle,1,NULL);當你點擊Frame1的菜單時會彈出一個對話框暫時不要點 確定點擊另一個線程的菜單暫不會彈出對話框確定剛才的對話框另一個線程的對話框也彈出來了。這個同步的方法稱為信號量。它允許有限的線程存取某個共享的系統(tǒng)資源采用計數(shù)器來實現(xiàn)信號量。HANDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpa,LONG cSemInitial,LONG cSemMax,LPTSR lpszSemName);第一個參數(shù)來指明所創(chuàng)建的對象是否可以被其子進程繼承。如果你希望在所有的子進程之間共享這個信號量可以把它的成員bInheritHandle設(shè)為true,也可以直接設(shè)為NULL來使用默認的安全設(shè)置第二個參數(shù)是還可以讓幾個線程使用第三個參數(shù)是最多可以讓幾個線程使用。最后參數(shù)是信號量的名字在其它的進程中調(diào)用CreateSemapphore()或OpenSemaphore()時使用這個字符串作為參數(shù)之一就可以得到信號量的句柄。ReleaseSemaphore(HANDLE hSemaphore, LONG cRelease,LPLONG plPrev)第二個表示一次釋放幾計算幾何為骨排樣優(yōu)化為魂作品一親士套料工具箱https://qinshi.blog.csdn.net/article/details/167222655作品二親士CAD工具箱https://qinshi.blog.csdn.net//article/details/156510081經(jīng)典文章推薦二維排樣https://qinshi.blog.csdn.net/article/details/164169163萬物皆數(shù)學https://qinshi.blog.csdn.net/article/details/143057305查閱鄙人的博文請點擊博文下載學院導航https://qinshi.blog.csdn.net/article/details/163717324活到老學到老。明朝中后期大約50%的進士能當上堂官(副部及更高)能當上堂官的舉人只有十余人。子墨子言之事無終始無務(wù)多業(yè)。也就是我們常說的專業(yè)的人做專業(yè)的事。