当前位置: 首页 > news >正文

图库素材网站上海专业网站建设服

图库素材网站,上海专业网站建设服,句容网站建设制作,aws中国免费vps1.前言 标准C线程即将到来。CUJ预言它将衍生自Boost线程库#xff0c;现在就由Bill带领我们探索一下Boost线程库。 就在几年前#xff0c;用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率#xff1b;为了达到最…1.前言 标准C线程即将到来。CUJ预言它将衍生自Boost线程库现在就由Bill带领我们探索一下Boost线程库。 就在几年前用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率为了达到最大的吞吐量事务服务器在单独的线程上运行服务程序GUI应用程序将那些费时复杂的处理以线程的形式单独运行以此来保证用户界面能够及时响应用户的操作。这样使用多线程的例子还有很多。 但是C标准并没有涉及到多线程这让程序员们开始怀疑是否可能写出多线程的C程序。尽管不可能写出符合标准的多线程程序但是程序员们还是会使用支持多线程的操作系统提供的多线程库来写出多线程C程序。但是这样做至少有两个问题这些库大部分都是用C语言完成的如果在C程序中要使用这些库就必须十分小心还有每一个操作系统都有自己的一套支持多线程的类库。因此这样写出来得代码是没有标准可循的也不是到处都适用的non-portable)。Boost线程库就是为了解决所有这些问题而设计的。 Boost是由C标准委员会类库工作组成员发起致力于为C开发新的类库的组织。现在它已经有近2000名成员。许多库都可以在Boost源码的发布版本中找到。为了使这些类库是线程安全的thread-safe)Boost线程库被创建了。 许多C专家都投身于Boost线程库的开发中。所有接口的设计都是从0开始的并不是C线程API的简单封装。许多C特性比如构造函数和析构函数函数对象function object)和模板都被使用在其中以使接口更加灵活。现在的版本可以在POSIX,Win32和Macintosh Carbon平台下工作。 2.常见创建线程方法 #include boost/thread/thread.hpp #include iostream #include stringvoid hello(const char* s,int b,int c) {std::cout s std::endl;std::cout b std::endl;std::cout c std::endl; }class Base{Base(){std::couthello world!std::endl;} }; int main(int argc, char* argv[]) {boost::thread *plan new boost::thread(boost::bind(hello,hello,I am thread,1000,2000));//thrd(Base);plan-join();boost::thread *plan2 new boost::thread(boost::bind(hello,hello,I am thread2,10002,20002));//thrd(Base);plan2-join();return 0; } 下面这句是创建线程的语句hello是线程调用的函数bind是传入参数 boost::thread *plan new boost::thread(boost::bind(hello,hello,I am thread,1000,2000));运行如下命令编译 g -stdc11 main.cpp -lpthread -lboost_system -lboost_thread -o main 执行 ./main结果如下 hello,I am thread 1000 2000 hello,I am thread2 10002 200023.在类中创建Boost::thread线程 代码 #include boost/thread/thread.hpp #include iostream #include stringvoid hello(const char* s,int b,int c) {std::cout s std::endl;std::cout b std::endl;std::cout c std::endl; }class Base{ public:const char* s_;int a_;int b_;Base(){std::couthello world!std::endl;} public:void threaFUnction(){boost::thread *plan2 new boost::thread(boost::bind(Base::hellowold,this,s_,a_,b_));//thrd(Base);plan2-join();} public:void hellowold(const char* s,int a,int b){ std::cout s std::endl;std::cout a std::endl;std::cout b std::endl;}};/* void Base::hellowold(const char* s,int a,int b) {std::cout s std::endl;std::cout b std::endl;std::cout c std::endl; } */int main(int argc, char* argv[]) {// boost::thread *plan new boost::thread(boost::bind(hello,hello,I am thread,1000,2000));//thrd(Base);//plan-join();//boost::thread *plan2 new boost::thread(boost::bind(hello,hello,I am thread2,10002,20002));//thrd(Base);// plan2-join();Base * base new Base();base-a_ 10;base-b_ 12;base-s_ hello Thread Class!;base-threaFUnction();return 0; } 主要是如下代码 void threaFUnction(){boost::thread *plan2 new boost::thread(boost::bind(Base::hellowold,this,s_,a_,b_));//在类中子成员创建线程plan2-join();}执行方式和上述一样执行结果如下 hello world! hello Thread Class! 12 10Reference C Boost Thread 编程指南
http://www.zqtcl.cn/news/267952/

相关文章:

  • 成都哪个网站建设比较好建设工程交易服务中心
  • 怎么做好网站推广小笨鸟跨境电商平台
  • 建立一个网站需要多少钱?制作ppt模板的软件
  • 百度 手机网站 友好性青岛谷歌优化
  • 免费的200m网站空间谷歌建站哪家好
  • 哪些平台可以建立网站2345浏览器网页版入口中文版
  • 网站设计与网页制作培训页面设计实训报告
  • 网站建设团队精神深圳福田最新消息今天
  • 网站制作主要公司哪个软件购物便宜又好
  • 如何取一个大气的名字的做网站263企业邮箱登录登录入口电脑版
  • 最好的做法是百度站长seo
  • 网站建设的基础常识dw个人简历网页制作
  • 网站建设怎么样做账义乌市住房和城乡建设局网站
  • 做网站友情链接的步骤wordpress文库主题
  • 网站模板用什么软件做泉州网站建设轩奇网讯
  • 网站开发必备人员网页设计图片居中代码
  • 网站列表页怎么做的百度seo优
  • 做网站销售好不好企业seo培训
  • 网站制作排版越南网站建设
  • 满城建设局网站我要买房网
  • 长沙百度提升排名南宁网站seo公司
  • 凡科网做网站怎样东莞寮步汽车城
  • 做百度网站费用多少基于html5的移动端网站开发
  • 专业做网站设计哪家好大型网站技术方案
  • 海外医疗兼职网站建设wordpress 最受欢迎主题
  • 网站改版方案案例入门级网页设计培训学员
  • 安徽优化网站运营平台
  • 小型企业网站设计教程面备案网站建设
  • 重庆业务外包网站建设办公室装修一般多少钱一个平方
  • 网站查询域名ip解析手机短视频网站的建设