知识卡片
线程共享资源
内容
线程拥有自己的执行现场,却共享所属进程资源,所以锁成为保护共享状态的常用手段。它的风险在于:共享越多,正确性越依赖纪律和工具,局部代码越难独立推理。[[Actor消息隔离]] 和 [[CSP用通道通信]] 是两种试图绕开这种共享风险的替代模型。
参考来源
- 位置:《Go语言高级开发与实战》第4章《Go语言并发编程》(源文件:_epub-src/GoYu Yan Gao Ji Kai Fa Yu Shi Zhan_split_035.html)
- 结论依据:原文说明线程是调度单位,拥有少量运行资源,并与同进程线程共享资源,因此可推出锁模型的共享状态风险。
- 原始内容:面简单介绍一下。 4.2.1 线程和锁 线程有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID、当前指令指针(PC)、寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。 所谓的锁,可以