class WorkRunnable: public Runnable
{
public:
virtual void run()
{
string user = "";
string pass = "";
data_pop(user,pass);
std::cout << "user:" << user << "\tpass:" << pass << std::endl;
}
};
void startWork()
{
InitializeCriticalSection(&critical_data);
ThreadPool pool(5, 5);
while(true)
{
int start_thread_count = 0;
int data_count = data_getcount();
if(data_count <= 0)
break;
int free_threapool = pool.available();
if(free_threapool < data_count)
start_thread_count = free_threapool;
else
start_thread_count = data_count;
while(start_thread_count > 0)
{
//WorkRunnableEx runex;
//RunnableAdapter<WorkRunnableEx> runnable(runex, &WorkRunnableEx::Work);
WorkRunnable runnable;
pool.start(runnable);
//Thread::sleep(5);
start_thread_count--;
}
}
DeleteCriticalSection(&critical_data);
}
单线程没事 ,一用多线程就出现这个错误,百思不得其解,求大神帮忙!