系统内的线程模型

Posted 特立独行的猪2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统内的线程模型相关的知识,希望对你有一定的参考价值。

多线程好处是毋庸置疑的,提高系统的性能,提高系统资源使用率,简化系统设计。带来好处的同时也伴随着数据一致性的风险。在对java多线程风险的认识和如何构建安全的多线程程序,以及java内部的多线程安全的一些类认知之前,先了解一下系统的线程模型。

 

现代的计算机,CPU的计算速度已经足够快,系统的计算瓶颈往往在I/O之上,为了让内存I/O跟CPU的计算速度达到一个持平的状态,引入了一个叫高速缓存的概念。模型图如下:

每个处理器都有一个都有一个高速缓存,在高速缓存内计算完毕,将计算结果写入到主内存中,不同的CPU计算时间写入的时间不一致,对于多线程操作的同一个变量,会发生值不一致的问题,所以系统底层在写入主内存之前,要经过一层一致性的协议,保证数据的一致性。


在java中也有线程的内存模型,通过一定的机制来保证写入的一致性问题,下节再进行说明。



以上是关于系统内的线程模型的主要内容,如果未能解决你的问题,请参考以下文章

协程IO模型

Java并发1——线程模型

11操作系统之线程概念与多线程模型

Go基础并发编程

Go基础并发编程

操作系统学习笔记----进程/线程模型----Coursera课程笔记