Java基础学习汇总

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()设置线程的优先级

你可能感兴趣的:(Java基础学习汇总)