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

海南省建设工程质量监督网站网页制作wordpress模板下载

海南省建设工程质量监督网站,网页制作wordpress模板下载,建设免费网站登录网址,恒一信息深圳网站建设公司2C多线程类Thread#xff08;C11#xff09; C11中std命名空间将Boost库中的Thread加入#xff0c;Boost的多线程从准标准变为标准#xff0c;这里将其用法整理复习#xff0c;以demo的形式复习#xff0c;还是喜欢看我自己写的东西#xff0c;符合我的个人逻辑头文件为…C多线程类ThreadC11 C11中std命名空间将Boost库中的Thread加入Boost的多线程从准标准变为标准这里将其用法整理复习以demo的形式复习还是喜欢看我自己写的东西符合我的个人逻辑头文件为#includethread,通过std::thread应用。就以Hello thread开始吧需要注意的是1join()函数和detach()函数的区别,2数据同步操作mutex需包含includemutex互斥锁 1、  普通函数多线程调用 1无参数函数 #include thread #include iostreamvoid hello_thread() {std::cout Hello Thread! std::endl; }int main() {std::thread t1(hello_thread); t1.join(); // 主线程等待子线程执行结束之后才会执行下一步的操作std::cout Main here std::endl;getchar();return 0; } 2有参数函数 #include thread #include iostreamusing namespace std;int msum(int a, int b) {int c a b;cout a b c endl;return c; }int main() {std::thread t1(msum,1,2);t1.join(); // 主线程等待子线程执行结束之后才会执行下一步的操作std::cout Main here std::endl;getchar();return 0; } 2、在类内部创建线程 1类内部函数为静态函数 #include thread #include iostreamusing namespace std;class HelloThread{public:static void hellothread(){cout Hello World, I‘m a thread endl;}static void start(){thread thread(hellothread);thread.join();}};int main(){HelloThread::start();getchar();return 0; } 在这里start()和hellothread()方法都必须是static方法。  2在Singleton模式内部创建线程  3 、用类内部函数在类外部创建线程 非常普通的类只是用多线程调用其内部的函数 #include thread #include iostreamusing namespace std;class HelloWorld{public:void hello(int year){cout I am year years old! endl;} };int main(){HelloWorld obj;thread thrd(HelloWorld::hello,obj,26);thrd.join();getchar();return 0; } join和detach的区别 join的作用前面已经提到主线程等待子线程结束方可执行下一步串行detach是的子线程放飞自我独立于主线程并发执行主线程后续代码段无需等待。看看效果 1join() #include thread #include iostreamusing namespace std;void hello_thread() {std::cout Hello Thread! std::endl; }int msum(int a, int b) {int c a b;cout a b c endl;return c; }int main(){thread t1(hello_thread);//主线程等待子线程运行结束之后才可以执行下一步t1.join();thread t2(msum,2,3);t2.join();//主线程代码cout Main here endl;getchar();return 0; } 2detach #include thread #include iostreamusing namespace std;void hello_thread() {std::cout Hello Thread! std::endl; }int msum(int a, int b) {int c a b;cout a b c endl;return c; }int main(){thread t1(hello_thread);//主线程等待子线程运行结束之后才可以执行下一步t1.detach();thread t2(msum,2,3);t2.detach();//主线程代码cout Main here endl;getchar();return 0; } 数据同步线程同时操作一个数据的安全性 执行单个线程上锁、解锁维护了线程的安全性防止线程之间交叉执行 #include thread #include iostream #include mutex using namespace std; std::mutex mt; int data1 1;void addmethod(int a){mt.lock();data1 a;cout add data data1 endl;mt.unlock(); } void multi(int a){mt.lock();data1 * a;cout multi data data1 endl;mt.unlock(); } void hello_thread() {std::cout Hello Thread! std::endl; }int msum(int a, int b) {int c a b;cout a b c endl;return c; }int main(){thread t1(addmethod,2);thread t2(multi,2);t1.detach();t2.detach();getchar();return 0; } 线程暂停 从外部让线程暂停会引发很多并发问题此处不做引申。这大概也是std::thread并没有直接提供pause函数的原因。但有时线程在运行时确实需要“停顿”一段时间怎么办呢可以使用std::this_thread::sleep_for或std::this_thread::sleep_until #include thread #include iostream #include mutex #include chrono #include ratio using namespace std; std::mutex mt;void pausable(){//sleep 500毫秒this_thread::sleep_for(chrono::milliseconds(500));//sleep 到达指定的时间点this_thread::sleep_until(chrono::system_clock::now() chrono::milliseconds(500)); } int main(){std::thread thread1(pausable);thread1.join();return 0; } 线程停止 一般情况下当线程函数执行完成后线程“自然”停止。但在std::thread中有一种情况会造成线程异常终止那就是析构。当std::thread实例析构时如果线程还在运行则线程会被强行终止掉这可能会造成资源的泄漏因此尽量在析构前join一下以确保线程成功结束。如果确实想提前让线程结束怎么办呢一个简单的方法是使用“共享变量”线程定期地去检测该量如果需要退出则停止执行退出线程函数。使用“共享变量”需要注意在多核、多CPU的情况下需要使用“原子”操作。 参考链接 https://blog.csdn.net/ouyangfushu/article/details/80199140
http://www.yutouwan.com/news/185649/

相关文章:

  • 网站建设中添加图片链接榆林北京网站建设
  • 一站式手机网站制作站酷设计网站官
  • 临沂做网站好的公司吐鲁番建设局网站
  • 网站关键词数量多少好做网站从何开始
  • 长春个人网站制作曲靖百度推广
  • 陶瓷网站源码网站关键字选择标准
  • 国外设计案例网站黄冈网站推广收费标准
  • 如何做网站信息南通高端网站建设公司
  • 企业网站源码免费带数据库上海普陀区企业网站建设
  • 邯郸学校网站建设价格wordpress 转小程序
  • 深圳SEO网站建设优化简约装修
  • 如何建立免费网站wordpress5导航图标
  • 企业网站建设要多少wordpress搭建问答系统
  • 站长工具seo优化建议网站和平台有什么区别
  • 做网站用虚拟主机好不好威海seo
  • 射洪哪里可以做网站百度的网址是什么呢
  • 建设主题网站步骤重庆网站APP
  • 新手如何做移动端网站ssr网站开发
  • 百度网站建设在哪新津县网站建设
  • 做网站业务员夏邑县百城建设提质网站
  • 网站建设及推广好做吗专业的微商代运营团队
  • 网站好坏的标准凡科建站快车代理登录
  • 单页网站怎么做seo端游网络游戏排行榜
  • 网站备案做网站必须一个网站包括
  • 有没有专门的网站做品牌授权的网站开发者工具解读
  • 在网站开发中如何设置登录常用的软件开发工具有哪些
  • 临湘市网站网站程序模板
  • 温州网站开发app制作建设网站需要多长时间
  • wordpress多站点互相链接模板网站的建设方式与方法
  • 网站开发语言p长治县网站建设