在C++11标准当中,提供了一个新的关键字thread_local,用于声明一个线程本地变量,即该变量是线程独有的。
C++11
thread_local
它的效果是,对于一个被声明为thread_local的变量a,不同的线程都会持有一个单独的a实例。
a
假设目前有两个线程A和B,那么同时在线程A当中访问a和在线程B当中访问a,是不冲突的,不存在竞态条件。
本文不探讨如何使用thread_local变量,我们旨在研究其具体是如何实现的,它的底层原理是什么。
学习大体上可以分为三个递进的步骤,即知识输入-消化理解-知识输出。作为首要步骤的知识输入,不可谓不重要。
本文旨在提供一个用于知识输入的通用框架,也可以说是具体思路/方法论,当我们遇到新的事物时,如何让我们的大脑接受它。