程序:是为了完成特定的任务,用某种语言编写的一组有序指令的集合,是一段静态的代码
进程:是程序的一次执行过程
线程:线程是进程中的一个执行单元
线程是调度和执行的单位
处理器和线程间的关系
创建线程(重点)
创建线程的四种方式
继承Thread,重写run方法
实现Runnable接口,重写run方法(必须掌握)
实现Callable接口,重写call方法
通过线程池
继承Thread,重写run方法
Mythead1 a = new Mythead1();
a.start();
实现Runnable接口,重写run方法(必须掌握)
创建线程方式二 实现Runable接口 重写run方法 * 继承Thread 重写run方法优点在于结构简单 匿名内部类方法创建推荐使用这种方式 * 缺点有两个 * 1由于java是单继承的 ,会导致一个类如果继承了Thread 就无法继承其他类 * 2直接重写run方法 在线程中导致线程与线程执行的任务绑定 。不利于线程的重用MyThread1 a = new MyThread1(); Thread t = new Thread(a); t.start();
实现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();