2011-05-14 92 views
-2

可能重複:
C++ multithreading tutorial我在哪裏可以找到多線程教程?

我有一個項目,我需要提供與被認爲使用WIN32 API使用多線程。
我是在Windows編程的初學者,我需要一個有用的教程,可以幫助我,任何建議?

我正在使用Visual Studio C++

+0

使用哪種編程語言? – Johan 2011-05-14 15:33:25

+0

C++,使用視覺工作室的Iam – Anon 2011-05-14 15:34:30

+0

@Anon,不要做'任何......',你只在8分鐘前問這個問題。 – Johan 2011-05-14 15:41:24

回答

0

說真的,我認爲你有麻煩了。多線程編程相當困難,新手程序員期待正確的編程是不合理的。

這是家庭作業,還是你爲僱主(或其他)做?

+4

我想這可能是一個評論。 – 2011-05-14 15:50:10

+0

雖然這充滿了良好的意圖,而且非常真實,但我認爲它根本不回答這個問題。 – 2011-05-14 15:50:37

+0

這就是我的意思(y)這就是爲什麼我沒有投票決定(: – 2011-05-14 15:53:19

1

儘可能簡單。

#include <windows.h> 
#include <iostream> 

using namespace std; 

void my_function(char* parameter){ 
    cout << parameter; 
} 

int main(){ 

char* passpointer = "hahaha"; 

HANDLE recvhand = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)my_function,passpointer,0,NULL); 

Sleep(1000); 

} 

基本上 你可以像你看到它,任何簡單的線程使用CreateThread功能。如果你需要更高級的幫助,你可以提出具體的可尋址問題,或者你可以做一些高級的谷歌搜索=)

+0

如果你使用CreateThread( ),你不能使用任何C運行時庫(RTL),即像strcpy(),printf()和atoi()這樣的函數,通常建議使用_beginthread()或_beginthreadex() //msdn.microsoft.com/en-us/library/ms682453%28VS.85%29.aspx – 2011-05-19 08:35:13

+0

有趣的是,這會產生額外的開銷嗎?我沒有發現任何需要在我的線程中使用RTL函數,直到這一點,大多數人一直在與網絡或簡單的工作與傳遞函數... – ultifinitus 2011-05-20 14:36:12

+0

我沒有任何開銷的數字,但我不認爲這將是多餘的,主要在啓動和關機時間。如果你正在創建和銷燬大量的線程,不是一個問題,但如果是這樣的話,你可能會更好地使用線程池而不是繼續創建和銷燬。 – 2011-05-20 18:32:02

相關問題