当前位置: 首页>>代码示例>>C++>>正文


C++ ThreadPool::add_task_to_pool方法代码示例

本文整理汇总了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;
//		}
	}
}
开发者ID:qinf,项目名称:spellCorrect,代码行数:42,代码来源:UDPServer.cpp


注:本文中的ThreadPool::add_task_to_pool方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。