Java教程

多线程的基本概念

本文主要是介绍多线程的基本概念,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.程序

程序(Program)”是一个静态的概念,一般对应于操作系统中的一个可执行文件,比如:我们要启动酷狗听音乐,则需要执行酷狗对应的的可执行程序。当我们双击酷狗的可执 行程序后操作系统会将该程序加载到内存中,开始执行该程序,于是产生了“进程”。

2.进程

执行中的程序叫做进程(Process),是一个动态的概念。其实进程就是一个在内存中独 立运行的程序空间 。如正在运行的写字板程序就是一个进程。

  1. 进程是程序的一次动态执行过程, 占用特定的地址空间。
  2. 每个进程由 3 部分组成:cpu、data、code。每个进程都是独立的,保有自 己的 cpu 时间,代码和数据,即便用同一份程序产生好几个进程,它们之间 还是拥有自己的这 3 样东西,这样的缺点是:浪费内存,cpu 的负担较重。
  3. 多任务(Multitasking)操作系统将 CPU 时间动态地划分给每个进程,操作系 统同时执行多个进程,每个进程独立运行。以进程的观点来看,它会以为自己 独占 CPU 的使用权。
  4. 进程的查看
    Windows 系统: Ctrl+Alt+Del,启动任务管理器即可查看所有进程。

3.线程

一个进程可以产生多个线程。同多个进程可以共享操作系统的某些资源一样,同一进程 的多个线程也可以共享此进程的某些资源(比如:代码、数据),所以线程又被称为轻量级 进程(lightweight process)。

  1. 一个进程内部的一个执行单元,它是程序中的一个单一的顺序控制流程。
  2. 一个进程可拥有多个并行的(concurrent)线程。
  3. 一个进程中的多个线程共享相同的内存单元/内存地址空间,可以访问相同的 变量和对象,而且它们从同一堆中分配对象并进行通信、数据交换和同步操作。
  4. 由于线程间的通信是在同一地址空间上进行的,所以不需要额外的通信机制, 这就使得通信更简便而且信息传递的速度也更快
  5. 线程的启动、中断、消亡,消耗的资源非常少。
    在这里插入图片描述
这篇关于多线程的基本概念的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!