class thread是对线程的抽象。以下分别介绍thread是如何表示线程的大部分特征的。

执行体

  线程的执行体由一个可执行(callable)对象来表示。这个执行体可以在thread创建的时候指定。thread创建完成后线程即启动执行。

  template<class Fn,class ...Args>

  explicit thread(Fn &&fn,Args&&... args);

  如果在创建thread的时候不指定,则该thread就没有执行体,也就不会有线程被启动。

  thread()noexcept;

  thread也可以移动构造,从另一个已存在的thread获得执行体,同时还接收线程状态。相当于实际的线程换了个宿主。

  thread(thread &&)noexcept;

  thread不能赋值和拷贝。

  thread(const thread &)=delete;  

分离属性

  thread在创建的时候不具备分离属性。成员函数detach可设置thread为分离的。

join

  join用于阻塞当前线程等待thread执行完执行体。一般用于多线程之间进行同步。对于不具备分离属性的线程必须要join,否则会导致terminal。

joinable属性

  成员函数joinable用于检测thread是否需要join。joinable为false的情况有3种:1.thread调用过detach; 2.thread已经join过; 3.thread为空。

线程句柄

  成员函数get_id用于返回线程的句柄。get_id可能返回joinable为true的thread的id,joinable为false则返回 id().

  以上就是标准库thread的所有操作,所以thread不具备指定优先级的功能。

thread的辅助函数

  thread的所有辅助函数位于std::this_thread命名空间中。

  thread::id get_id()用于获取当前线程id.

  void yield()noexcept 用于退出本次执行,等待下次调度.

sleep_for(duration) 用于使当前线程阻塞一个时间段

  sleep_until(time_point) 用于使当前线程阻塞直到某个时间点

c++标准库之thread的更多相关文章

  1. python标准库00 学习准备

    Python标准库----走马观花 python有一套很有用的标准库.标准库会随着python解释器一起安装在你的电脑上的.它是python的一个组成部分.这些标准库是python为你准备的利器,可以 ...

  2. Python标准库08 多线程与同步 (threading包)

    Python主要通过标准库中的threading包来实现多线程.在当今网络时代,每个服务器都会接收到大量的请求.服务器可以利用多线程的方式来处理这些请求,以提高对网络端口的读写效率.Python是一种 ...

  3. Python标准库的学习准备

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python标准库是Python强大的动力所在,我们已经在前文中有所介绍.由于标准 ...

  4. Boost程序库完全开发指南——深入C++“准”标准库(第3版)

    内容简介  · · · · · · Boost 是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库,有着“C++‘准’标准库”的美誉. Boost 由C++标准委员会部分成员所设立的Bo ...

  5. C++著名类库和C++标准库介绍

    C++著名类库 1.C++各大有名库的介绍——C++标准库 2.C++各大有名库的介绍——准标准库Boost 3.C++各大有名库的介绍——GUI 4.C++各大有名库的介绍——网络通信 5.C++各 ...

  6. Python学习笔记16:标准库多线程(threading包裹)

    Python主要是通过标准库threading包来实现多线程. 今天,互联网时代,所有的server您将收到大量请求. server要利用多线程的方式的优势来处理这些请求,为了改善网络port读写效率 ...

  7. OSS.Social微信项目标准库介绍

    经过本周的努力,昨晚终于完成OSS.Social微信项目的标准库支持,当前项目你已经可以同时在.net framework和.net core 中进行调用,调用方法也发生了部分变化,这里我简单分享下, ...

  8. Python:标准库(包含下载地址及书本目录)

    下载地址 英文版(文字版) 官方文档 The Python Standard Library <Python标准库>一书的目录 <python标准库> 译者序 序 前言 第1章 ...

  9. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

随机推荐

  1. 用Emmet写CSS3属性会自动添加前缀

    CSS3的很多属性都包含浏览器厂商前缀,用Emmet写CSS3属性会自动添加前缀,比如输入trs 会展开为: -webkit-transition: prop time; -moz-transitio ...

  2. linux过滤ip地址

    一.系统版本 [root@zabbix-server tmp]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 二.用awk ...

  3. javascript快速入门18--样式

    修改元素外观方式 修改元素外观主要有下面3种方法:修改ID,修改className,修改元素的style属性 修改ID?会造成多么混乱的结果可想而知! 修改className确实是非常好的方法,我们甚 ...

  4. Hive中日期函数总结

    --Hive中日期函数总结: --1.时间戳函数 --日期转时间戳:从1970-01-01 00:00:00 UTC到指定时间的秒数 select unix_timestamp(); --获得当前时区 ...

  5. builder pattern

    design patterns 结合书本和这个网站的这个系列的文章来看: https://www.tutorialspoint.com/design_pattern/builder_pattern.h ...

  6. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 新的机器翻译服务

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序  新的机器翻译服务         机器翻译服务也是继Wor ...

  7. 自定义radio/checkbox样式

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  8. LRU的C++实现引申出的迭代器问题

    leetcode上刷题.碰到一题实现LRU算法的题目. LRU,Least recently used.是一种常见的cache和页面替换算法.算法和原理可以参阅相关wiki. leetcode上的这一 ...

  9. MATLAB 的日期和时间

    MATLAB的日期和时间常用函数 函数 说明 calender 返回日历 clock 当前时间 date 当前日期 weekday 星期几 now 当前的日期和时间 datevec 以向量显示日期 d ...

  10. Coolite简介

    Coolite Toolkit 简介 Coolite Toolkit 是一个支持ASP.NET AJAX的Web控件 Coolite Toolkit是基于跨浏览器的ExtJS 库开发而来的,并且简化了 ...