首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

线程与进程-JAVA成长之路

关于线程与进程的概念,我们可以使用集合的角度来理解,如果说一个计算机的所有程序运行量是个总集,那么,这个总集就是由所有的进程进行总和的,比如我们打开我们的任务管理,就可以看到下面的截图所示:

线程与进程的关系

电脑同时就在进行着200个进程

1.线程与进程概念

线程: 每个进程中至少包含一个线程,而这些线程都在共享进程的资源空间等,当线程发生变化的时候只会引起CPU执行的过程发生变化,不会改变进程所拥有的资源。同理一个程序中至少包含一个进程。进程中执行运算的最小单位,亦是执行处理机调度的基本单位

进程: 每个进程都有自己的地址空间,资源如,内存,I/O,CPU,同一个进程里的 线程共享本进程里的地址空间,那能不能使用别人家进程的地址空间呢,显然这是不可以的。由于进程的独立性,当某一个进程崩溃之后,在保护模式下不会对别的进程进行影响。资源分配的基本单位,运行调度的基本单位,系统中并发执行的单位。

2.使用区别

当我们对资源的保护管理要求比较高的时候,建议使用多进程,当然存在的开销也会比较大,反过来,如果频繁切换下,对资源的保护管理要求不那么高,或者开销有限,使用多线程会比较方便。

3.两者的比较

(1)调度

同一个进程中,线程的切换不会引起进程的切换;

由一个进程的线程切换到另一个线程的进程时,引起进程的切换。

(2)并发性

进程可以并发执行,而一个进程中的线程也可以并发执行

(3)拥有的资源

一般来说,线程并不会拥有自己的资源,但是它可以访问自己本进程中的资源,比如,一个进程打开的文件等,进程的其他线程是可以共享的。

(4)系统开销

这个跟切换有关,则,下一个可以仔细讲解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200824A03OV900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券