一.概述
1.进程
在一个操作系统内,可单独执行的程序都可称之为进程。或者是操作系统给将要运行的程序分配的内存空间。
2.线程
一个进程内负责代码执行的控制单元或者执行路径。
3.多线程
一个进程拥有多条执行路径称之为多线程。
一个进程至少有一个线程。
4.线程任务
每一个线程都有需要执行的代码称之为线程任务。
5.为什么使用
解决代码可以同时执行(线程执行是依赖cpu在线程间快速、随机切换完成的,由于时间很短,因此给人同时执行的感觉)的问题。
缺点:线程多了以后,cpu分配到每一个线程上的时间片段减少,降低了运行效率。
6.jvm多线程解析
执行java.exe,开启一个jvm实例,jvm启动依赖多线程完成,其中至少一个主线程(封装在main方法内的代码),一个垃圾回收线程。
public class A {
public void finalize() {
System.out.println("finalize called ......");
}
}
public class Basic {
public static void main(String[] args) {
new A();
new A();
new A();
System.gc();
System.out.println("main over ......");
}
}
//输出的结果中,main over在任意一行中都是可能的
main over ......
finalize called ......
finalize called ......
finalize called ......
二.线程的状态