我一直觉得多线程对于我这个low逼来说比较没用,但是有时候总是会遇到这个东西,所以记录一下

创建多线程

1.继承Thread,重写run (传统写法)

class MyThread extends Thread {
    @Override
    public void run() {
        //code
    }
}

Main()函数
MyThread myThread=new MyThread();
myThread.start();

2.实现Runnable借口,实现run(传统写法)

class MyRunable implements Runnable {
    @Override
    public void run() {
    //code
    }
}
Main()函数
MyRunable myRunable=new MyRunable();
Thread thread=new Thread(myRunable);
thread.start();

3.简单点

使用lambda表达式
new Thread(()->{System.out.println(666);}).start();

数据共享

关于这个数据共享,我总是觉得很不能理解,因为觉得很无聊,比如下面的就是各自独立的

        new MyThread().start();
        new MyThread().start();
        new MyThread().start();

但是这样就可以共享一个任务了,其实看一看,上面就是三个各自独立的,下面这个因为都放进a了,所以就是多个线程完成一个任务

        MyThread a = new MyThread();
        new Thread(a, "A").start();//命名A
        new Thread(a).start();//可以不命名
        new Thread(a, "C").start();

原本一个任务现在拆分的比较散,有可能会出现