线程 ***
-
程序
-
进程
-
线程
-
package com.qf.thread;
import java.util.Scanner;
/**
* 1: 相关的概念
* 1:程序:静态的概念,计算机指令的集合。
* program
* 2:进程:
* process
* 运行中的程序就是进程。
* 程序的一次执行就称为进程。
* 特点:
* 1:多个进程可以并发执行。(看上去是并发执行,但是如果是单cpu,单核,那么所有的进程是串行)。
* 2:系统会为每个进程分配对应的资源使用,而且进程之间的资源是不共享的。
* 【进程是系统进行资源分配的最小单位】
* 3:进程创建和销毁对系统资源的消耗是比较大的。
*
* 3: 线程
* thread
* 1:进程中的一条任务线。进程中的一条独立的执行路径。
* 2:线程不能独立存在,必须以进程为载体。在进程中存活。
* 3:线程负责将进程中的代码交给cpu去执行。
* 4:线程是可以并发执行。一个进程中可以包含多个线程。
* 5:一个进程中至少要有一个线程,如果一个进程中没有任何的线程,那么 os会杀死进程。
* 6:进程是任务的载体,线程是进程中负责执行任务的。
* 7: 进程中的第一个线程,称为主线程。java程序中的主线程:main。
* 8:进程中的所有的线程是共享所在的进程的资源的。
* 9:【线程是cpu进行调度执行任务的最小单位。】
* 进程中的线程抢夺cpu的控制权来执行线程的任务。cpu将自己的划分为非常微小的时间片给不同的进程中的线程来使用。
*
* 4:进程的线程关系
* 1:进程是线程的载体。进程负责给线程提供资源。线程负责执行进程中的任务。
* 2:进程中至少要有一个存活的线程。一个进程中的线程的个数没有限制。
* 3:进程可以在任务中创建新的线程,也可以杀死进程中的线程。
* 4:如果将进程杀死,进程中的所有的线程都会被杀死。
* 5:java 程序中的所有的需要执行的代码都是在某一个线程中被执行的。
*
* java 程序中的主线程是main线程。main线程的主体任务就是 main方法中的所有的代码。
*
* 5:单线程程序的优缺点:
* 优点:消耗的系统资源少。代码简单。
* 缺点:一旦线程被阻塞了,那么整个程序就暂停了。
*
* 6:多线程程序的优缺点:
* 优点:可以充分的利用进程的资源,一个线程被阻塞了,其他的线程不受任何的影响。
* 缺点:会消耗更多的系统资源。
*
*/
public class Test {
public static void main(String[] args) {
test1();
test2();
}
private static void test1() {
while(true){
System.out.println("1");
}
}
private static void test2() {
while(true){
System.out.println("2");