Java多线程详解(一)---概念的引入

一、并发和并行
并行:指两个或多个事件在用一时刻发生(同时发生) 。例如:并发=两个队列和一台咖啡机
并发:指两个或多个事件在一个时间段内发生。 例如:并行=两个队列和两台咖啡机
注意:单核处理器的计算机肯定不能并行的处理多个任务,只能是多个任务交替的在单个CPU上运行。
二、进程和线程
2.1 程序(Program)
  • 是一个指令的集合
2.2 进程(Process)
  • 正在运行的应用程序(CPU的多进程运行,如同时运行QQ、WPS、WeChat);
  • 每个进程都有一个独立的内存空间;
  • 进程也是程序的一次执行过程,是系统运行程序的基本单位。系统运行一个程序即是一个进程从创建、运行到消亡的过程。
  • 缺点:内存的浪费,CPU的负担

2.3 线程
  • 进程就是所有线程的集合,每一个线程是进程中的一条执行路径;
  • 一个进程可拥有多个并行(concurrent)线程;
  • 一个进程中的线程共享相同的内存单元/内存地址空间->可以访问相同的变量和对象,而且他们从同一堆中分配对象->通信、数据交换、同步操作

进程和线程的区别:
  • 一个进程下至少有一个线程,一个进程下也可以有多个线程来增加程序的执行程度。
  • 进程是作为资源分配的单位;线程是调度和执行的单位;
  • 线程是进程的一部分。
posted @ 2020-12-07 16:26  豆小豆1314  阅读(73)  评论(0编辑  收藏  举报