栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

创建线程的几种方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

创建线程的几种方式

继承Thread类
public class ExtendsThreadTest extends Thread {
    @Override
    public void run() {
 System.out.println("thread is running!");
    }
    public static void main(String[] args) {
 ExtendsThreadTest et1 = new ExtendsThreadTest();
 et1.start();
    }
}

实现Runnable接口
public class RunnableTest implements Runnable{
    @Override
    public void run() {
 System.out.println("thread is running!");
    }
    public static void main(String[] args) {
 Thread t1 = new Thread(new RunnableTest());
 t1.start();
    }
}

匿名内部类的两种写法
public class App {
    public static void main(String[] args){
 new Thread(new Runnable() {
     @Override
     public void run() {
  System.out.println("thread1 is running!");
     }
 }){}.start();

 new Thread(){
     @Override
     public void run(){
  System.out.println("thread2 is running!");
     }
 }.start();
    }
}

基于java.util.concurrent.Callable工具类的实现,带返回值
public class CallableTest {
    public static void main(String[] args) throws Exception {
 Callable call = new Callable() {
     @Override
     public Integer call() throws Exception {
  System.out.println("thread is running!");
  return 1;
     }
 };
 FutureTask task = new FutureTask<>(call);
 Thread t =  new Thread(task);
 t.start();
    }
}

基于java.util.Timer工具类的实现
public class TimerTest {
    public static void main(String[] args) throws Exception {
 Timer timer = new Timer();
 timer.schedule(new TimerTask() {
     @Override
     public void run() {
  System.out.println("thread is running!");
     }
 }, new Date());
    }
}

基于java.util.concurrent.Executors工具类,基于线程池的实现
public class ThreadPoolTest {
    public static void main(String[] args) {
 // 创建线程池
 ExecutorService threadPool = Executors.newFixedThreadPool(10);
 while(true) {
     threadPool.execute(new Runnable() { // 提交多个线程任务,并执行
  @Override
  public void run() {
      System.out.println(Thread.currentThread().getName() + " is running ..");
      try {
   Thread.sleep(3000);
      } catch (InterruptedException e) {
   e.printStackTrace();
      }
  }
     });
 }
    }
}

更多信息可以关注我的个人博客:逸竹小站

也欢迎关注我的公众号:yizhuxiaozhan,二维码:

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号