【连载】第1章-1.1并发简史
2019-08-19 本文已影响2人
可爱猪猪
格言:在程序猿界混出点名堂!
![](https://img.haomeiwen.com/i18759109/f022812d61509771.png)
《JAVA并发编程实战》解读
【连载】第1章-1.1并发简史
并发的由来
- 早期计算机无操作系统,属于串行执行。
- 后期计算器加入操作系统,实现多程序同时运行,就是并行执行。
- 实现并行可通过线程和进程。两者都可以实现并发,线程属于一种轻量级的进程。
线程和进程的区别可理解为:进程为独立运行的程序,线程为进程中的一个独立任务。一个进程可以有多个线程组成。
串行的利弊
- 利:直观/简单
- 弊:效率低下,无法发挥硬件的潜力。
并发出现的原因
- 提高资源的利用率,也就是可以同时运行多个程序或者任务。
- 公平性,不同的用户和程序能够同时共享计算机资源,而不是一个执行完然后下一个执行。
- 便利性:计算多任务时,应该编写多程序,每个程序执行一个任务并在必要时相互通讯,比一个程序计算所有任务更容易实现。可以理解为,将任务做到低耦合单独程序实现单独任务,比如流行的微服务。
线程的理解
- 线程就是同一个进程的多个程序控制流,也就是说线程就像进程的分支一样。
- 线程会共享进程的资源,比如内存地址空间/内存句柄/文件句柄,但JVM中,程序计数器/栈等为线程私有(不知道的同学可网上查阅)。
- 同一进程多个线程可以同时被调度到多个CPU上执行。
-如果不把控好线程对共享变量的控制,容易造成不可预测的结果。
比如银行转账的经典问题。
知识点:
- 线程的理解。
-
进程和线程的区别。
喜欢连载可关注微信公众号:逗哥聊IT。