Java基础学习汇总
多线程
- 了解:所谓多线程,即是在一个进程中,可以同时运行的多任务.如果把现实中的每个人理解为一个进程(QQ),那每个人可以同时处理多项任务,如一边听歌一边写作业可以理解为多线程开启.一个进程占用CUP时间是有限的,通常我们感觉不到有切换是因为CUP切换的速度极快.
多线程的实现方法有两种
- 1.继承Thread
- 定义类继承Thread
- 重写run方法
- 把新线程要做的内容写在run方法中
- 创建类的对象
- 执行start方法
- 注意:匿名内部类和普通类方式非常相似
public class Test { public static void main(String[] args) { //1.普通定义一个新的类来创建 Person p = new Person(); p.start(); //1.普通定义一个匿名类来创建 new Thread(){ public void run(){ System.out.println("Thread多线程启动(匿名内 部类)"); } }.start(); } } //Thread方式 class Person extends Thread { public void run(){ System.out.println("Thread多线程启动,继承方式"); } }
- 2.实现接口Runnable(Thread构造函数中传递了runnable的引用,通过init()方法传递target,用于判断是否执行run()方法)
- 定义类实现Runnable
- 实现run方法
- 把操作写在run中
- 创建Thread对象,传入runnable
- 调用Runnable的start方法
public class Test { public static void main(String[] args) { //1.普通类实现了runnable接口来实现调用里面的run方法 Student s = new Student(); Thread t = new Thread(s); t.start(); //2.匿名类来实现runnable接口 new Thread(new Runnable() { @Override public void run() { System.out.println("匿名内部类Runnable多线程启动方法"); } }).start(); } } class Student implements Runnable{ @Override public void run() { System.out.println("Runnable多线程启动方法,继承方式"); } } ```
两种线程的区别
- 继承Thread
- 好处:可以直接使用Thread类中的方法,代码简单
- 弊端:如果已经有父类,就不能用这种方式
- 实现Runnable
- 好处:可以有父类,直接只是实现接口
- 弊端:间接把对象作为构造方法的参数传递进去,较为复杂,但自由度较大
线程中其他操作
- 通过getName()可以获得当前线程的名字
- 通过setName(String)可以设置线程名字
- Thread.currentThread()可以获得当前线程对象,获得对象后可以对其进行操作(改名,获得名字)
- Thread.sleep(毫秒),类方法调用,可以使得当前线程休眠
- setPriority()设置线程的优先级