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


C++ boost::thread方法代码示例

本文整理汇总了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);
    }
}
开发者ID:TheArchives,项目名称:ArMCpp,代码行数:13,代码来源:Heartbeat.cpp

示例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);
    }
}
开发者ID:leeight,项目名称:FireBreath,代码行数:22,代码来源:BasicService.cpp

示例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";
}
开发者ID:CCJY,项目名称:coliru,代码行数:40,代码来源:main.cpp

示例4: Start

 virtual void Start(){
     _thr = thread(&TObj::Run, this);
     _thr.join();
 }
开发者ID:bonly,项目名称:exercise,代码行数:4,代码来源:20110514_obj.cpp

示例5: Start

 void Start(){
     _thr = thread(bind(&srv::Run,this));
     _thr.join();
 }
开发者ID:bonly,项目名称:exercise,代码行数:4,代码来源:20110512_server_bind.cpp


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