简单线程入门

245 阅读2分钟

并发和并行

并发:指的是两个或者多个事件在同一时间段内发生

并行:指的是两个或者多个事情在同一时间内一起发生

进程:指的是一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程。

线程:进程中的一个运行单元,一个进程中至少有一个线程,一个进程中也可以有多个线程

线程调度:
1·分时调度:指的是所有线程轮流使用CPU的使用权,平均分配给每个线程占用CPU的时间
2·抢占式调度:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),java的使用是抢占式调度。

主线程

简单来说,在Java中,jvm找操作系统开辟的main方法通向cpu的执行路径就会cpu

创建主线程

  • 创建多线程程序的第一种方式:创建Thread类的子类
  • java.lang.Thread类:是描述线程的类,我们想要实现多线程程序,就必须继承Thread类
  • 实现步骤:
  • 1·创建一个Thread类的子类
  • 2·在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么?)
  • 3·创建Thread类的子类对象
  • 4·调用Thread类中的方法,开启新的线程,执行run方法
  •   void start() 使得该线程开始执行;java虚拟机调用该线程的 run 方法
    
  •   结果是两个线程并发运行;当前线程(从调用返回给 start 方法).
    
  •   多次启动一个县城是非法的。特别是当线程已经结束执行后,不能再重新启动。
    
  • java程序属于抢占式调度,哪个线程的优先级高,哪个线程优先执行;同一优先级,随机选择一个执行。
    public class ChuangJianDuoXianchengFirst {
            public static void main(String[] args) {
            //创建Thread类的子类对象
            MyThread mt = new MyThread();
            //4·调用Thread类中的方法,开启新的线程,执行run方法
            mt.start();

        for (int i = 0; i < 20; i++) {
            System.out.println("main:" + i);
        }
    }
}

//创建一个Thread类的子类
public class MyThread extends Thread {
//    在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么)
    @Override
    public void run() {

    }
}