多线程详解
Java.Thread
-
程序:程序就是指令和数据的有序集合,没有任何运行含义,是一个静态概念。
-
进程:计算机运行的程序就是进程,是执行程序的一次过程,是动态概念。是系统资源分配的单位。比如QQ,播放器,游戏,IDEA等等。
-
线程:一个进程中包含多个线程,如视频中同时听到声音,看图像,看弹幕等。若干个线程之间不影响,一个进程中至少有一个线程。线程是cpu调度和执行的单位。
注意 :很多多线程都是模拟出来的,真正的多线程是指多个cpu,即多核,如服务器。如果是模拟出来的多线程,即在一个cpu情况下,在同一时间点,cpu只能执行一个代码,因为切换的很快,所以就有同时执行的所觉。
线程实现(重点)
创建方式
1. 继承Thread类(重点)
public class TestThread1 extends Thread{
@Override
public void run(){
//run方法线程体
for(int i = 1;i<20;i++){
System.out.println("我在看代码---"+i);
}
}
public static void mian(String[] args){
//main线程,主线程
//创建一个线程对象
TestThread1.start();
for(int i = 1;i<200;i++){
System.out.println("我在学习多线程----"+i);
}
}
}
扩展:(普通方法和线程)
run(): 主线程中调用run方法只有主线程一条路径,主线程执行完run()方法区,再返回主线程按顺序执行。
start(): 主线程中调用start()方法,子线程执行run()方法,多条执行路径,主线程和子线程并行交替执行。