本文整理汇总了C++中ThreadPool::add_task_to_pool方法的典型用法代码示例。如果您正苦于以下问题:C++ ThreadPool::add_task_to_pool方法的具体用法?C++ ThreadPool::add_task_to_pool怎么用?C++ ThreadPool::add_task_to_pool使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ThreadPool
的用法示例。
在下文中一共展示了ThreadPool::add_task_to_pool方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: start
//启动UDP服务器
void UDPServer::start(ThreadPool &thread_pool) {
// fd_set fd_read, fd_read_back;
// struct timeval tm;
// FD_ZERO(&fd_read);
//监听socket上的输入
// FD_SET(server_fd, &fd_read);
// tm.tv_sec = 3;
// tm.tv_usec = 0;
int addr_len = sizeof(client_addr);
char *recv_buf = new char[1024];
EncodingConverter trans;
while(1) {
// tm.tv_sec = 3;
// tm.tv_usec = 0;
// fd_read_back = fd_read;
std::cout << "recv。。。" << std::endl ;
// select(1024, &fd_read_back, NULL, NULL, &tm);
// if(FD_ISSET(server_fd, &fd_read_back)) {
//接受数据
memset(recv_buf, 0, 1024);
memset(&client_addr, 0, sizeof(client_addr));
cout << "================" << endl;
if (-1 == recvfrom(server_fd, recv_buf, 1024, 0, (struct sockaddr*)&client_addr, (socklen_t*)&addr_len))
Log::get_instance()->write("UDPServer recv data from client failed!");
string recv = trans.gbk_to_utf8(string(recv_buf));
cout << "server recv: " << recv << endl;
Task task;
task.set_task(recv_buf);
task.set_addr(client_addr);
//输出地址
//cout << "UDPServer: " << task._addr.sin_addr.s_addr << endl;
if(!thread_pool.add_task_to_pool(task)) {
Log::get_instance()->write("failed to add task to pool");
}
cout << "-----------------------------" << endl;
//cout << "queue size: " << thread_pool.get_task_queue_size() << endl;
// }
}
}