java并发编程从入门到精通-----1.进程并发基础概念
《java并发编程从入门到精通》这本书详细介绍了java并发基础的概念\工作原理\编程技巧和注意事项,对java高性能并发编程有极大的参考价值,下面就结合自己对这本书的理解,进行自己学习的过程.(这本书的pdf可以在此点击下载)
CPU核心数线程数
多核心:也指单芯片,多处理器其思想是将大规模并行处理器,集成到一个芯片内处理器并行执行不同的进程
多线程:多线程称可以通过复制处理器上的结构状态,让同一个处理器上的多个线程同步执行共享处理器的执行资源,可以最大限度的实现宽发射,乱序的超标量处理,提高处理器运算部件的利用率,缓和由于数据和相关,或cache未命中带来的访问内存延时。
CPU时间片轮转机制
CPU时间片轮转机制是一种最古老最简单,最公平,使用最广泛的算法。CPU时间片轮转机制原理解释如下:
如果在时间片结束时进程还在进行,则cpu将剥夺并分配给另一个进程,如果在时间片结束前阻塞或结束,则cpu当即进行切换。调度程序所做的就是维护一张就绪进程列表,当进程用来它时间片后,他将移到队列的尾部。
什么是进程?
进程是程序运行资源分配的最小单位。
是不是线程?
线程是CPU调度的最小单位,必须依赖于建成而存在。
进程与线程对比
贴一张原书上的图吧!!!请原谅我懒
什么是并行运行?
我们举一个例子,如果有一条高速公路a上面有八条车道,那么最大的并行车辆就是八辆,四条高速公路a,同时并排行走的车辆小于等于8辆时候,车辆就可以并行运行。CPU也是这个原理,一个CPU相当于一个高速公路a,核心数或线程数就相当于并排可以通行的车道,而多个CPU就相当于并排有多条高速公路,而每一个高速公路并排有多个车道。
什么是并发运行?
在操作系统的管理下,所有正在运行的进程,轮流使用CPU哪个进程,允许占用cpu的时间非常短如果一台计算机有多个cpu,或者一个CPU多个核心和线程情况就不一样了,如果进程产生的总进程数小于cpu的核数,则不同的进程的线程可以分配的不同cpu来运行,这便是并行。
什么是吞吐量?
行吞吐量是指系统在单位时间内所处理的信息量。
高并发编程的意义
1.充分利用CPU的资源
2.加快享用用户的时间
3.可以使你的代码模块化,异步化,简单化
高并发多线程要注意的问题
1.以线程之间的安全性
2.线程之间的死循环过程
3.线程太多了,会将服务器资源耗尽形成死机当机
分布式,并行运算,并发运算
还是老样子,贴张图吧
结束语:
这本书第一部分的概念比较多,请大家仔细辨析。