初见Java多线程(一、线程的概念)

一、线程和进程的概念

现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。

进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。
线程其实就是进程中一个程序执行控制单元,一条执行路径。进程负责的是应用程序的空间的标示。线程负责的是应用程序的执行顺序。
线程总是属于某个进程,进程中的多个线程共享进程的内存。

多线程的“同时”执行是人的感觉,实际上是线程之间在快速的轮换执行。
随机性的原理:因为cpu的快速切换造成,哪个线程获取到了cpu的执行权,哪个线程就执行。

二、Java中的线程

在Java中线程的创建和执行是两种不同的事件
1、java.lang.Thread类的一个实例
2、线程的执行

在Java中使用java.long.Thread类或者java.long.Runnable接口来编写代码用以定义、实例化和启动一个新的线程

一个进程至少有一个线程在运行,当一个进程中出现多个线程时,就称这个应用程序是多线程应用程序
每个线程在栈区中都有自己的执行空间,自己的方法区、自己的变量
一旦创建一个新的线程,就产生一个新的调用栈

jvm在启动的时,首先有一个主线程,负责程序的执行,调用的是main函数。主线程执行的代码都在main方法中
当产生垃圾时,收垃圾的动作,是不需要主线程来完成,因为这样,会出现主线程中的代码执行会停止,会去运行垃圾回收器代码,效率较低,所以由单独一个线程来负责垃圾回收。

线程总体分两类:用户线程和守候线程。
当所有用户线程执行完毕的时候,JVM自动关闭。但是守候线程却不独立于JVM,守候线程一般是由操作系统或者用户自己创建的。

三、线程的生命周期

初见Java多线程(一、线程的概念)