Java 并发编程中如何创建线程
简介
线程是基本的调度单位,它被包含在进程之中,是进程中的实际运作单位,它本身是不会独立存在。一个进程至少有一个线程,进程中的多个线程共享进程的资源。
Java中创建线程的方式有多种如继承Thread类、实现Runnable接口、实现Callable接口以及使用线程池的方式,线程池将在后面文章中单独介绍,这里先介绍另外三种方式。
继承Thread类
优点:在run方法里可以用this获取到当前线程。
缺点:由于Java不支持多继承,所以如果继承了Thread类后就不能再继承其他类。
public class MyThread extends Thread {
/**
* 线程要执行的任务
*/
@Override
public void run() {
System.out.println("do something...");
}
public static void main(String[] args) {
//创建线程
MyThread myThread = new MyThread();
//启动线程
myThread.start();
}
}
实现Runnable接口
优点:实现Runnable接口后不影响继承其他类,以及有利于多个线程资源共享。
缺点:获取当前线程需要调用Thread.currentThread()。
public class MyThread implements Runnable {
/**
* 线程要执行的任务
*/
@Override
public void run() {
System.out.println("do something...");
}
public static void main(String[] args) {
//创建两个线程,并指定相同的任务
Thread thread1 = new Thread(new MyThread());
Thread thread2 = new Thread(new MyThread());
//启动线程
thread1.start();
thread2.start();
}
}
实现Callable接口
优缺点类似于实现Runnable接口,但是实现Callable接口可以有返回值。
public class MyThread implements Callable<String> {
/**
* 线程要执行的任务,并且具有返回值
*/
@Override
public String call() throws Exception {
System.out.println("do something...");
Thread.sleep(3000);
return "我是返回值";
}
public static void main(String[] args) throws ExecutionException, InterruptedException {
//创建异步任务
FutureTask<String> futureTask = new FutureTask(new MyThread());
//启动线程
new Thread(futureTask).start();
//阻塞等待线程执行完成并返回结果
String result = futureTask.get();
System.out.println(result);
}
}
以上就是Java 并发编程中如何创建线程的详细内容,更多关于Java 创建线程的资料请关注脚本之家其它相关文章!
相关文章
AbstractQueuedSynchronizer(AQS)锁状态同步和排队管理
这篇文章主要介绍了为大家AbstractQueuedSynchronizer(AQS)锁状态同步和排队管理源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-11-11
Java 11 正式发布,这 8 个逆天新特性教你写出更牛的代码
美国当地时间9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用!这是自 Java 8 后的首个长期支持版本2018-09-09
SpringSession会话管理之Redis与JDBC存储实现方式
本文将详细介绍Spring Session的核心概念、特性以及如何使用Redis和JDBC来实现会话存储,帮助开发者构建更加健壮和可扩展的应用系统,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2025-04-04
如何获取springboot打成jar后的classpath
这篇文章主要介绍了如何获取springboot打成jar后的classpath问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-07-07


最新评论