хочу реализовать многопоточный сервер.
На определенное событие должны создаваться потоки. Временем жизни потоков необходимо управлять.
Поток представляет собой
class Thread : private boost::noncopyable {
private :
boost::thread m_thread;
static boost::xtime delay (int sec, int msec = 0, int nsec = 0);
public :
Thread (const boost::function0<void>& func) : m_thread (func) {;}
~Thread () { m_thread.join(); }
static void sleep (unsigned msec);
};
хотелось бы потоки хранить например в списке и отслеживать отработавшие — удалять их из списка.
Как проще сделать. В голову приходит лишь отдельный поток, который проверяет состояние потока и принимает решение о его удалении.
Но как определить состояние...
еще хотелось бы по выбору останавливать необходимые потоки
P.S. кстати как можно реализовать поток через boost::function1 (нужно в потоковый метод данные передавать — желательно конечно шаблонный класс)
P.S.S. в идеале хотелось бы "поиметь" класс работающий с потоками и выполняющий минимально необходимые действия