C++线程

头文件 <thread>

成员方法:

detach():本线程与调用它的线程分离,各自独立执行。调用之后,线程变为non-joinable

join():本线程执行完该函数才会返回,调用它的线程需要等待返回只会继续往下执行。调用后non-joinable

joinable():A thread object is joinable if it represents a thread of execution.

3种情况是non-joinable:A.默认构造;B.转移过(构造方法或=转移);C.执行过detach或join

get_id():如果线程是joinable的,返回一个唯一的id标识该线程;否则返回一个默认的

问题: thread是什么时候执行赋予它的函数的?

答案:是thread对象创建后就执行,并不是等到detach或join执行之后才运行。

命名空间this_thread的方法

std::this_thread::get_id():返回当前线程的id

std::this_thread::yield():是将当前线程所抢到的CPU”时间片A”让渡给其他线程,等到其他线程使用完”时间片A”后, 再由操作系统调度, 当前线程再和其他线程一起开始抢CPU时间片。yield比较难理解,yield目的是避免一个线程(that should be used in a case where you are in a busy waiting state)频繁与其他线程争抢CPU时间片, 从而导致多线程处理性能下降.

sleep_for(time):当前线程休眠一段时间

sleep_util(time):休眠到某个时间点

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容