前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java并发篇_进程&线程

Java并发篇_进程&线程

作者头像
栗筝i
发布2022-12-01 20:53:59
3680
发布2022-12-01 20:53:59
举报
文章被收录于专栏:迁移内容迁移内容

一个进程包括由操作系统分配的内存空间,包含一个或多个线程。一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。 多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。

一、进程

1、什么是进程

进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。

2、进程的特点
  • 进程是程序的一次执行过程。
  • 进程是是正在运行程序的抽象。它代表运行的CPU,也称进程是对CPU的抽象。
  • 系统资源(如内存、文件)以进程为单位分配。
  • 操作系统为每个进程分配了独立的地址空间
  • 操作系统通过“调度”把控制权交给进程。

二、线程

1、什么是线程

线程(thread) 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

线程由线程ID,程序计数器(PC)[用于指向内存中的程序指令],寄存器集合[由于存放本地变量和临时变量]和堆栈[用于存放方法指令和方法参数等]组成。

2、为什么引入线程

主要归咎于两点. 一个是由实现决定的,一个是由需求决定的.

  1. 进程是资源调度的单位, 因此进程之间的切换的代价和开销比较大.
  2. 一个进程内可能需要多任务并发的执行,实现不同的功能.
3、进程与线程的区别
  1. 进程是拥有系统资源的,系统会给进程分配一个完整的虚拟地址空间.(不同进程无法共享相同的内存空间)
  2. 线程除了少量必要的资源外(存放本地变量),几乎不需要资源,因此它与资源分配无关。
  3. 进程之间相互独立,且不能共享资源
  4. 在同一进程的线程之间,可以共享进程的所有资源。
  5. 一个线程挂掉,整个进程都会跟着挂掉,而多进程应用,进程挂掉,不会影响到其他进程。多进程的程序要比多线程的程序健壮。
  6. 线程上下文切换的速度比进程上下文切换的快得多。
  7. 在多线程系统中,进程不是可执行的实体,线程才是实际的执行单位.
4、线程设计的3个难点
  1. 在 CPU 密集型任务、I/O 密集型任务以及充分利用多核 CPU 提升程序性能上找到一个平衡点。
  2. 尽可能支持规模更大的线程数量。
  3. 减少线程在用户态(User Mode)和内核态(Kernel Mode)中切换带来的开销。
5、并发与并行

并发:一个时间段内有很多的线程或进程在执行,但何时间点上都只有一个在执行,多个线程或进程争抢时间片轮流执行。

并行:一个时间段和时间点上都有多个线程或进程在执行。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、进程
    • 1、什么是进程
      • 2、进程的特点
      • 二、线程
        • 1、什么是线程
          • 2、为什么引入线程
            • 3、进程与线程的区别
              • 4、线程设计的3个难点
                • 5、并发与并行
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档