Nunja, was ich versuche ist, eine Klasse zu schreiben die einen Thread startet. Das ist aber nicht mein Problem. Mir ist wohl einfach noch nicht die Funktionsweise von pthread klar.
hanf_thread.h
Code:
#include <pthread.h>
using namespace std;
#ifndef HANF_THREAD_H
#define HANF_THREAD_H
class hthread {
public:
void start_thread(void *funktionC);
private:
pthread_t h_thread;
bool running;
};
#endif
hanf_thread.cpp
Code:
#include "hanf_thread.h"
void hthread::start_thread(void *funktionC) {
if (running) return;
pthread_create( &h_thread, NULL, funktionC, NULL);
running = true;
return;
}
Von dieser Klasse erzeugt eine andere Klasse ein Objekt, denn ich will einen neuen Thread starten, während das Hauptprogramm sich mit anderen Dingen beschäftigt.
ein kleiner Schnipsel aus dieser Klasse:
Code:
[...]
void gurke::gurken_bearbeiten() {
cout<<"child(vector): ";
for(int i = 0; i < gurken.size(); i++) {
if (i > 0) cout<<" ";
cout<<gurken[i];
}
cout<<endl;
cout<<"child(string): "<<sorten<<endl;
gurken.push_back("senf");
sorten += " schoko";
sleep(10);
}
void gurke::start() {
gurken_threads.start_thread(&gurke::gurken_bearbeiten);
return;
}
Lesezeichen