PDF 及笔记
电脑上如果 PDF 不展示或者展示不正常,使用 Chrome 并安装 PDF Viewer 插件。其他情况请下载文件查看:tlpi-ch31。
视频讲解
线程安全:
线程专有数据(thread-specific data)及线程本地数据(thread-local data):
后续的思考:thread-specific data 的主要用处在于,让线程在其生命周期内有一块专有的堆上的内存。对比其他几种方式:
- 在线程函数内使用自动变量:变量在函数结束(而不是线程结束)时就被销毁
- 在线程函数内使用 malloc 分配堆上内存:需要在函数结束(而不是线程结束)前 free 该内存,不然会引起内存泄露
- 使用全局变量:全局变量的生命周期比线程长;无法是线程独享,各线程会互相覆盖;使用时需要加锁
因此 thread-specific data 是好的解决方法,这块内存随着进程创建而创建、销毁而销毁。
而 thread-local storage 则更进一步,使得你不需要去 malloc / free 这块 buffer。它的底层实现我暂不了解。