Java多线程实现方式及并发与同步,阿里技术官整合的四大主流中间件笔记
在Java中实现多线程可以通过以下四种方式:
- 继承
Thread
类:
public class MyThread extends Thread {
public void run(){
// 线程执行的代码
}
}
// 使用
MyThread myThread = new MyThread();
myThread.start();
- 实现
Runnable
接口:
public class MyRunnable implements Runnable {
public void run(){
// 线程执行的代码
}
}
// 使用
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
- 使用
FutureTask
:
public class MyCallable implements Callable<String> {
public String call() throws Exception {
// 线程执行的代码
return "结果";
}
}
// 使用
MyCallable myCallable = new MyCallable();
FutureTask<String> futureTask = new FutureTask<>(myCallable);
Thread thread = new Thread(futureTask);
thread.start();
// 获取线程执行的结果
try {
String result = futureTask.get();
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
- 使用线程池(ExecutorService):
ExecutorService executorService = Executors.newFixedThreadPool(10);
executorService.execute(new Runnable() {
public void run() {
// 线程执行的代码
}
});
// 或者使用Callable
Future<String> future = executorService.submit(new Callable<String>() {
public String call() throws Exception {
// 线程执行的代码
return "结果";
}
});
// 关闭线程池
executorService.shutdown();
并发与同步是多线程处理中的两个主要问题:
- 并发(Concurrency):同一时间执行多个操作,无序,不确定的。
- 同步(Synchronization):通过某种机制(如锁)控制多个线程访问共享资源的顺序化。
在Java中,同步可以通过synchronized
关键字、volatile
关键字、显示锁(Lock)实现。
评论已关闭