《深入浅出Java多线程》笔记

本书网站

基础篇

批处理操作系统内存里只能有一个程序,指令串行执行、效率低。于是引入进程(内存里分配了空间、正在运行的程序)的概念,加上CPU时间片轮转,实现了并发。后来人们不满于进程只能执行一个任务,引入线程的概念,于是QQ上可以一边聊天一边下载文件了。总结一下,就是进程让操作系统的并发性成为了可能,而线程让进程的内部并发成为了可能。

相比多进程,多线程实现并发有一些好处:

  • 通常需要使用共享资源,线程间的通信比较简单
  • 线程是轻量级的,系统开销更小

进程和线程的区别:

  • 本质区别是是否单独占有内存地址空间及其它系统资源(比如I/O)
    • 进程单独占有一定的内存地址空间,数据共享复杂但是同步简单
    • 一个进程出现问题不会影响其他进程,可靠性高
    • 进程的创建和销毁不仅需要保存寄存器和栈信息,还需要资源的分配回收以及页调度,开销较大
  • 进程是OS进行资源分配的基本单位,而线程是OS进行调度(CPU分配时间)的基本单位

猜你喜欢

转载自www.cnblogs.com/y1xu/p/13376013.html