在读了南大jyy这篇system领域的顶会论文 The Hitchhiker's Guide to Operating Systems 后
再加上最近一直有在进行有关StateMachine(SM,状态机)的实践,有了一些心得,故在此总结记录一下。
文本会给出一些实践代码,其中包含了一些论文中所提到的模型(以现代C++复现),也有一些在我自己好奇心的驱逐下诞生的想法,又或者是一些生产中的最佳实践。
在C++11标准当中,提供了一个新的关键字thread_local,用于声明一个线程本地变量,即该变量是线程独有的。
它的效果是,对于一个被声明为thread_local的变量a,不同的线程都会持有一个单独的a实例。
假设目前有两个线程A和B,那么同时在线程A当中访问a和在线程B当中访问a,是不冲突的,不存在竞态条件。
本文不探讨如何使用thread_local变量,我们旨在研究其具体是如何实现的,它的底层原理是什么。