day35 线程

程序:是为了完成特定的任务,用某种语言编写的一组有序指令的集合,是一段静态的代码

进程:是程序的一次执行过程

线程:线程是进程中的一个执行单元

线程是调度和执行的单位

处理器和线程间的关系

day35 线程_第1张图片

day35 线程_第2张图片

创建线程(重点)

  1. 创建线程的四种方式

    • 继承Thread,重写run方法

    • 实现Runnable接口,重写run方法(必须掌握)

    • 实现Callable接口,重写call方法

    • 通过线程池

继承Thread,重写run方法 

Mythead1 a = new Mythead1();

a.start();

day35 线程_第3张图片

 
  

 实现Runnable接口,重写run方法(必须掌握)

创建线程方式二  实现Runable接口  重写run方法
* 继承Thread 重写run方法优点在于结构简单  匿名内部类方法创建推荐使用这种方式
* 缺点有两个
* 1由于java是单继承的  ,会导致一个类如果继承了Thread 就无法继承其他类
* 2直接重写run方法 在线程中导致线程与线程执行的任务绑定 。不利于线程的重用
MyThread1 a = new MyThread1();
Thread t = new Thread(a);
t.start();

day35 线程_第4张图片

实现Callable接口,重写call方法

 

* 无论是第一种还是第二种方法
* 无论是继承Thread  还是实现Runnable接口
* 1没有返回值
* 2不能抛出异常
* jdk1.5以后出现了第三种创建线程的方法  实现Callable接口 重写call方法
* 实现Callable接口创建线程方式的好处  1方法有返回值 2。可以抛异常
* 不足 是 创建线程比较麻烦
MyCallable1 a = new MyCallable1();
FutureTask f = new FutureTask(a);
Thread thread = new Thread(f);
thread.start();

day35 线程_第5张图片

你可能感兴趣的:(java,jvm,开发语言)