程序、进程、线程
1. 程序:计算机指令的集合,以文件的形式存储在磁盘上
2. 进程:是程序的一次动态执行过程,经历了从代码加载、执行到执行完毕的一个完整过程,这个过程也是进程本身从产生、发展到最终消亡的过程
3. 线程:是进程中的一个单一的连续控制流程,多线程值一个进程在执行过程中可以产生多个线程,这些线程可以同时存在、同时运行
多线程:线程通常是抢占式的而不需要时间片分配进程(分配给每个线程相等的CPU时间的进程)。抢占式调度模型就是许多线程处于可以运行状态(等待状态),但实际上只有一个线程在运行。该线程一直运行到它终止进入可运行状态(等待状态),或者另一个具有更高优先级的线程变成可运行状态。在后一种情况下,低优先级的线程被高优先级的线程抢占,高优先级的线程获得运行的机会。
JAVA中所有线程都是同时启动的,哪个线程先抢到了CPU资源,哪个就先运行
优点:多线程机制可以同时运行多个程序块,使程序运行的效率变得更高,克服一些传统程序语言无法解决的问题(例如有些包含循环的线程可能需要好一段时间来运算,此时便可以让另一个线程来做其他的处理)
线程的实现
1. 继承Thread类,并覆盖run()方法
public class ThreadDemo1 {
public static void main(String[] args) {
test1();
System.out.println("主线程执行的方法");
}
private static void test1() {
Thread thread1 = new MyThread1("线程A");
thread1.start();//启动线程,执行run方法
Thread thread2 = new MyThread1("线程B");
thread2.start();
}
}
class MyThread1 extends Thread{
private String name;
public MyThread1(String name) {
super();
this.name = name;
}
@Override
public void run() {
System.out.println("这是线程" + name + "执行的方法");
}
}
//其中 一种可能为(谁先抢到CPU则谁先执行