java线程笔记
我一直觉得多线程对于我这个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();
锁
原本一个任务现在拆分的比较散,有可能会出现