进程、线程(一)

本文详细介绍了Java中的进程和线程概念,包括进程的内存占用、线程的执行单元特性,以及main线程的启动过程。同时,讨论了并发与并行的区别,时间片的概念,以及线程的创建、启动、分类、优先级和线程组。通过对线程状态的分析,阐述了线程在执行过程中的变化情况。
摘要由CSDN通过智能技术生成

一、进程与线程

1.进程

        在计算机中,进程代表了内存中正在运行的应用程序,计算机中的资源(cpu 内存 磁盘 网络等),会按 照需求分配给每个进程,从而这个进程对应的应用程序就可以使用这些资源了。

        进程其实就表示了当 前这个应用程序,在系统中的资源使用情况以及程序运行的情况。如果关闭这个进程,那么对应的应用 程序也就关闭了。进程就是在系统中,运行一个应用程序的基本单位。 jps 查看当前进程  jps -l  可以查看进程类全名

2.线程

        线程是进程中的一个代码执行单元,负责当前进程中代码程序的执行,一个进程中有一个或多个线程。 当一个进程中启动了多个线程去分别执行代码的时候,这个程序就是多线程程序。

        使用java命令去运行一个类的时候,会先启动JVM,这个JVM对于计算机来讲,就是一个 应用程序,所以同时系统中也会启动一个进程和这个JVM对应。jconcole 查看 jvm 当前运行情况

        名字叫main的线程,调用执行我们代码中的main方法。

        每个线程都有自己独立的栈区,而堆区是共享的

        之前所提到的栈区,又被称为方法调用栈,是线程专门执行方法中代码的地方,并且每一个线 程,都有自己独立的栈空间,和别的线程相互不影响

        最先启动的线程是主线程(main线程),因为它要执行程序的入口main方法,在主线程中,创 建并且启动了t线程,启动之后main线程和t线程将各自独立运行,并且争夺CPU的时间片

二、并发和并行

线程的并发执行,是指在一个时间段内,俩个或多个线程,使用一个CPU,进行交替运行。(调动策略)

线程的并行执行,是指在同一时刻,俩个或多个线程,各自使用一个CPU,同时进行运行。

三、时间片

   1.概述     

        时间片,当前一个线程要使用CPU的时候,CPU会分配给这个线程一小段时间(毫秒级别),这段时间 就叫做时间片,也就是该线程允许使用CPU运行的时间,在这个期间,线程拥有CPU的使用权。

   2.调度

        当俩个或多个线程使用一个CPU来运行代码的时候,在操作系统的内核中,就会有相应的算法来控制线 程获取CPU时间片的方式,从而使得这些线程可以按照某种顺序来使用cpu运行代码,这种情况被称为线 程调用【调度】。

常见的调度方式:

  • 时间片轮转

所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。

  • 抢占式调度

系统会让优先级高的线程优先使用 CPU(提高抢占到的概

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值