本文整理汇总了C++中boost::thread方法的典型用法代码示例。如果您正苦于以下问题:C++ boost::thread方法的具体用法?C++ boost::thread怎么用?C++ boost::thread使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boost
的用法示例。
在下文中一共展示了boost::thread方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: beat
void beat()
{
static ServerInfo info;
info = Server->getInfo();
static thread hb;
if(hb.timed_join(milliseconds(0)))
{
hb = thread( doHeartBeat,std::ref(info));
Tasks->callLater(60000,beat);
}
}
示例2: FBLOG_INFO
// Init() needs to be separate so that shared_from_this can give the shared_ptr to the workers in do_async_accept() without exploding everything
// It's weird, but it works. Read the docs on boost::weak_ptr and enable_shared_from_this for more information.
void BasicService::init() {
// Initialize presalted hash state
signing_key_length = 2048;
signing_key = Platform::getRandomBytes(signing_key_length);
// Bind and open acceptor socket
srv_acceptor.open(srv_endpoint.protocol());
srv_acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
srv_acceptor.bind(srv_endpoint);
srv_acceptor.listen();
srv_endpoint = srv_acceptor.local_endpoint();
FBLOG_INFO("HTTP:Service", "Started server on " << srv_endpoint.port());
do_async_accept();
// Start worker threadpool.
for (std::size_t i = 0; i < threadpool_size; ++i) {
shared_ptr<boost::thread> thread(new boost::thread(boost::bind(&BasicService::_worker_thread_entry, this)));
threadpool.push_back(thread);
}
}
示例3: main
int main() {
boost::asio::io_service io_service;
boost::asio::deadline_timer timer(io_service);
timer.expires_at(boost::posix_time::pos_infin);
boost::atomic_bool shutdown(false);
int num_events = 0;
auto waiter = [&timer, &num_events, &shutdown](boost::asio::yield_context context) {
while (!shutdown) {
std::cout << "waiting on event" << std::endl;
boost::system::error_code e;
timer.async_wait(context[e]);
std::cout << "got event (" << e.message() << ")" << std::endl;
++num_events;
}
};
boost::asio::spawn(io_service, std::move(waiter));
boost::thread thread(boost::bind(&boost::asio::io_service::run, &io_service));
for (auto i = 0; i < 5000; ++i) {
io_service.post([&timer, i]{
std::cout << i << std::endl;
timer.cancel();
});
}
io_service.post([&]{
shutdown = true;
timer.cancel();
});
thread.join();
std::cout << "Check: " << num_events << " events counted\n";
}
示例4: Start
virtual void Start(){
_thr = thread(&TObj::Run, this);
_thr.join();
}
示例5: Start
void Start(){
_thr = thread(bind(&srv::Run,this));
_thr.join();
}