avatar

多线程的实现方式

继承Thread,重写run方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Demo extends Thread{

@Override
public void run() {

/* 线程代码 */
System.out.println("123 " + Thread.currentThread().getName());

}

public static void main(String[] args) {

Demo demo1 = new Demo();
demo1.start();

Demo demo2 = new Demo();
demo2.start();

}
}

控制台打印信息

控制台打印信息1

实现Runnable接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Demo implements Runnable{

public static void main(String[] args) {

Thread t1 = new Thread(new Demo());
t1.start();

Thread t2 = new Thread(new Demo());
t2.start();

}

@Override
public void run() {

System.out.println("123 " + Thread.currentThread().getName());

}
}

控制台打印信息

控制台打印信息1

使用Callable和FutureTask

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Demo{

public static void main(String[] args) throws Exception{

Callable callable = new Callable() {
@Override
public Object call() throws Exception {

System.out.println("123 " + Thread.currentThread().getName());
return null;
}
};

FutureTask task1 = new FutureTask(callable);
FutureTask task2 = new FutureTask(callable);

task1.run();
task2.run();

}
}

控制台打印信息

控制台打印信息2

文章作者: 123
文章链接: https://gao5805123.github.io/123/2020/05/14/%E5%A4%9A%E7%BA%BF%E7%A8%8B%E7%9A%84%E5%AE%9E%E7%8E%B0%E6%96%B9%E5%BC%8F/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 123
打赏
  • 微信
    微信
  • 支付宝
    支付宝