手机静态网站开发制作,中国门户网站建设重要性,手机优化大师怎么卸载,华为开发者联盟文章目录 10.1简述线程、程序、进程的基本概念。以及他们之间关系是什么?10.2线程有哪些基本状态? 10.1简述线程、程序、进程的基本概念。以及他们之间关系是什么?
线程与进程相似#xff0c;但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程… 文章目录 10.1简述线程、程序、进程的基本概念。以及他们之间关系是什么?10.2线程有哪些基本状态? 10.1简述线程、程序、进程的基本概念。以及他们之间关系是什么?
线程与进程相似但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源所以系统在产生一个线程或是在各个线程之间作切换工作时负担要比进程小得多也正因为如此线程也被称为轻量级进程。
程序是含有指令和数据的文件被存储在磁盘或其他的数据存储设备中也就是说程序是静态的代码。
进程是程序的一次执行过程是系统运行程序的基本单位因此进程是动态的。系统运行一个程序即是一个进程从创建运行到消亡的过程。简单来说一个进程就是一个执行中的程序它在计算机中一个指令接着一个指令地执行着同时每个进程还占有某些系统资源如 CPU 时间内存空间文件输入输出设备的使用权等等。换句话说当程序在执行时将会被操作系统载入内存中。 线程是进程划分成的更小的运行单位。线程和进程最大的不同在于基本上各进程是独立的而各线程则不一定因为同一进程中的线程极有可能会相互影响。从另一角度来说进程属于操作系统的范畴主要是同一段时间内可以同时执行一个以上的程序而线程则是在同一程序内几乎同时执行一个以上的程序段。
10.2线程有哪些基本状态?
Java 线程在运行的生命周期中的指定时刻只可能处于下面 6 种不同状态的其中一个状态图源《Java 并发编程艺术》4.1.4 节。 线程在生命周期中并不是固定处于某一个状态而是随着代码的执行在不同状态之间切换。Java 线程状态变迁如下图所示图源《Java 并发编程艺术》4.1.4 节 由上图可以看出
线程创建之后它将处于 NEW新建 状态调用 start() 方法后开始运行线程这时候处于 READY可运行 状态。可运行状态的线程获得了 cpu 时间片timeslice后就处于 RUNNING运行 状态。 操作系统隐藏 Java 虚拟机JVM中的 READY 和 RUNNING 状态它只能看到 RUNNABLE 状态图源HowToDoInJavaJava Thread Life Cycle and Thread States所以 Java 系统一般将这两个状态统称为 RUNNABLE运行中 状态 。 当线程执行 wait()方法之后线程进入 WAITING等待 状态。进入等待状态的线程需要依靠其他线程的通知才能够返回到运行状态而 TIME_WAITING(超时等待) 状态相当于在等待状态的基础上增加了超时限制比如通过 sleeplong millis方法或 waitlong millis方法可以将 Java 线程置于 TIMED WAITING 状态。当超时时间到达后 Java 线程将会返回到 RUNNABLE 状态。当线程调用同步方法时在没有获取到锁的情况下线程将会进入到 BLOCKED阻塞 状态。线程在执行 Runnable 的run()方法之后将会进入到 TERMINATED终止 状态。