多线程——是涵盖在操作系统里的一部分 所以在学之前最好读一下操作系统原理的系列教材
多线程的意思就是在同一时间,可以做多件事情。
创建多线程的方法有 继承线程类 实现Runnable接口 及匿名类的写法
线程概念:
首先 进程(processor)和线程(Thread) 的概念区别
进程: 比如 启动游戏就是一个进程 该进程可以在任务管理器看见且可关闭
线程:游戏中会同时发生很多事件 这些事件就是线程
因此 线程是存在于进程里的 进程涵盖多个线程且可同时发生 这种例子在平时上网的时候很常见
在不用线程类去实现代码功能 该功能达不到同时进行的预期效果
1、继承线程类Thread
自定义类继承Thread 创建属性 方法 其中注意要重写run方法 重写的内容就是要实现的功能
在测试类里进行该自定义类的实例化对象 进行方法调用放入类类型或者数据类型的参数 若为类类型则需要建一个类也就是设计一个比如学生这个群体 共有的属性 在测试类中实例化几个学生对象 进行测试
注意:
run方法不会自动运行 在利用继承了Thread类的自定义类进行实例化对象后调用 start() 方法之后才可以进行。、
2、实现Runnable接口的写法
这种实现方法相比于继承Thread类 要多一个注意的地方 也就是自定义类在实现接口Runnable时 会相应重写run方法——该方法就是要实现的功能
但是还是得靠Thread类实例化一个对象将自定义类的引用作为参数放入调用Thread类的构造方法再调用start() 方法
new Thread(引用).start();
3、匿名类实现
使用匿名类,继承Thread,重写run方法,直接在run方法中写业务代码
匿名类的一个好处是可以很方便的访问外部的局部变量。
在一个类里的主方法以匿名类实现该类实质是自定义类继承该类
Thread t1= new Thread(){
public void run(){
}
};
t1.start();
同样重写run方法 之后也得调用start() 方法。
因为在匿名类和之前写法其实功能一样 写法不一样