多线程专题
程序员文章站
2022-06-15 14:10:25
...
1.线程的实现方式:
(1)继承成Thread 类 (2)实现Runnable接口 (3)实现Callable接口
2. Thread 类
java.lang
类 Thread
继承java.lang.Object
所有已实现的接口: Runnable
class PrimeThread extends Thread {
// ...
@override
public void run() {
// . . .
}
}
然后,下列代码会创建并启动一个线程:
PrimeThread p = new PrimeThread();
p.start();
3.Runnable 接口
创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动。采用这种风格例子如下所示:
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
然后,下列代码会创建并启动一个线程:
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
4.Callable 接口
/**
* author : Sam
* date : 2020/3/31-11:04
* desc :
*/
public class Test1 {
public static void main(String[] args) throws ExecutionException, InterruptedException {
//创建对象
MyCallableThread myThread = new MyCallableThread(11);
//创建执行服务
ExecutorService executorService = Executors.newFixedThreadPool(1);
//提交执行
Future<Boolean> booleanFuture = executorService.submit(myThread);
//获取结果
boolean result = booleanFuture.get();
//关闭服务
executorService.shutdownNow();
}
static class MyCallableThread implements Callable<Boolean> {
private long number;
public MyCallableThread(long number) {
this.number = number;
}
@Override
public Boolean call() throws Exception {
// ....
return true;
}
}
}
5. 静态代理模式
Thread 类实现了runnable 接口,并在构造中声明了Runnable , 当我们自定义线程实现了runnable接口,就可以调用 new Thread(new MyThread).start()来启动线程,这种通过Runnable方式调用线程的模式为静态代理模式。
上一篇: 创建型模式之工厂方法模式
下一篇: useState 的简单实现