Thread in cpp erzeugen ...
-
Joa wiedre mal 'ne Anfängerfrage ... Will einen bzw. mehrere Threads erzeugen (html proxy). Hab' das ganze in Java geschrieben, will es nun auch mal in cpp wagen. Hab' schon gegoogelt aber nirgends ein brauchbares Beispiel zum erzeugen eines Threads gefunden
Sei es mit oder ohne WinAPI ...
Für einen kurzen code-Schnipsel wäre ich sehr dankbarMFG John
-
Am besten Threads aus der Boost-Library benutzen, da (wie von dir richtig festgestellt) in der Standard-C++ Library keine Thread-Klasse vorhanden ist:
http://www.boost.org/libs/thread/doc/index.html
Download und Installation von Boost:
http://www.boost.org/more/getting_started.html
Ein Codeschnippsel, der zwei Threads startet:
#include "boost/thread.hpp" #include <iostream> #include <string> void printAmin() { for(int i = 0; i<1000; i++) std::cout << "Amin\n"; } void printSamir() { for(int i = 0; i<1000; i++) std::cout << "Samir\n"; } int main(int argc, char* argv[]) { boost::thread threadA(&printAmin); boost::thread threadB(&printSamir); threadA.join(); threadB.join(); return 0; }
-
Sehe ich das richtig, dass das Prog dann nur auf einem Rechner mit dieser Lib arbeitet, oder läuft es dann auch auf anderen Rechnern, da der Source compiliert wird?
-
Läuft auch auf anderen Rechnern, sogar weitestgehend plattformunabhängig.
-
Außerdem habe ich sowas gefunden:
DWORD dwID; HANDLE hThread = CreateThread(0, 0, MeinThread, szFileName, &dwID, 0); //siehe MSDN
Kann damit aber nix anfangen ...
-
C++-Programme muß man aber immer auf jeder Plattform neu kompilieren, egal ob man jetzt Threads benutzt oder nicht.
Die Boost-Lib gibt es auch für andere Plattformen, mußt dir für jede Plattform extra downloaden und auf der jeweiligen Plattform neu kompilieren. Einfach mal auf boost.org umschauen, hier die Plattformen für die es Boost gibt:
-
JohnDoe21 schrieb:
Außerdem habe ich sowas gefunden:
DWORD dwID; HANDLE hThread = CreateThread(0, 0, MeinThread, szFileName, &dwID, 0); //siehe MSDN
Kann damit aber nix anfangen ...
Wie da schon steht: in der MSDN gibt es weitere Infos!!!
http://www.msdn.comDas Programm würde sich aber nur unter Windows compilieren lassen.
-
Threads laufen über WinAPI mit CreateThread, TerminateThread und THREADPROC
??? Das stand dabei ...
-
Ooops nicht rechtzeitig abgeschickt thx, ich schau mal rein ...