java-学习篇-并发编程基础

进程

进程是系统进行资源分配和调度的一个独立单位。当一个程序进入内存运行时,即变成一个进程。
特征:独立性、动态性(程序只是一个静态的指令集合,而进程是一个正在系统中活动的指令集合)、并发性。
进程是在一个上下文的执行环境中运行的,这个执行环境称为进程的映像,或称进程图像。进程的存储映像组成部分:进程控制块(PCB,即进程状态信息)、进程执行的程序、执行时所需要的数据和进程执行时使用的工作区。

并发性:同一时刻只能有一条指令执行,但是多个进程指令被快速轮换执行。现代操作系统多进程的并发:共用式的多任务操作策略;抢占式多任务操作策略。
并行性:指在同一时刻,有多条指令在多个处理器上同时执行。

线程

线程是进程的执行单元,线程可以拥有自己的堆栈、自己的程序计数器和自己的局部变量,但不拥有系统资源,与父进程的其他线程共享该进程所拥有的全部资源。线程是独立运行的,它并不知道进程中是否还有其他线程存在。线程的执行是抢占式的,当前运行的线程在任何时候都可能被挂起,以便另外一个线程可以运行。一个线程可以创建和撤销另一个线程。

操作系统可以同时执行多个任务,每个任务就是进程;进程可以同时执行多个任务,每个任务就是线程。

线程的风险:

  • 安全性问题(永远不发生糟糕的事情,核心是正确性):由于多个线程要共享相同的内存地址空间,并且是并发运行,因此它们可能会访问或修改其他线程正在使用的变量。
  • 活跃性问题(某件正确的事情最终会发生):当某个操作无法继续执行下去时,就会发生活跃性问题。(死循环、死锁、饥饿等)
  • 性能问题(正确的事情尽快发生):CPU时间将更多地花在线程调度而不是线程运行上。
发布了32 篇原创文章 · 获赞 7 · 访问量 3450

猜你喜欢

转载自blog.csdn.net/u010019244/article/details/105329759