Re: реализация читатели-писатель
От: artiz  
Дата: 28.04.10 06:57
Оценка:
Здравствуйте, OdesitVadim, Вы писали:

OV>Доброго дня.


OV>Ищется библиотека либо академическая статья, по которой можно написать такое.

OV>есть тред, который читает с сокета и складывает задания в очередь.
OV>Есть какой то пул тредов, которые с очереди забирают, выполяют и отдают результат в основной тред.

OV>Интересует либо реализация под Linux+gcc или хорошая статья с теорией правильной реализации.


Можешь попробовать мой вариант — thread_pool.hpp
Работает под Win/Linux.

Использовать примерно так (код не рабочий, только идея):

void threadProc(int n){
    std::cout << "processed: " << res << std::endl;
}

ThreadPool<int> threadPool(threadProc, 20);

// main work cycle
while (true)
{
    ...
    socket_type clientSock = accept (serverSock, (sockaddr* ) &clientAddr, &clientAddrLen);
    int command = util::readInt (clientSock);
    util::closeSocket (clientSock);

    if (command == EXIT_COMMAND)
       break;

    threadPool.process (command);
}
...
threadPool.stop(true);
...
util::closeSocket (serverSock);
...

Рабочий пример: thread_pool
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.