美文网首页
Java之多线程4种创建

Java之多线程4种创建

作者: Jason_Sam | 来源:发表于2019-05-26 17:03 被阅读0次
  1. 继承Thread类实现多线程。
  2. 覆写Runnable()接口实现多线程。
  3. 覆写Callable接口实现多线程。
  4. 通过线程池启动多线程。

继承Thread类实现多线程

    //继承Thread类实现多线程
    public static class CreateByThread extends Thread{
        public CreateByThread() {}
        
        @Override
        public void run() {
            for(int i=0;i<10;i++) {
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
        
        public static void main(String[] args) {
            CreateByThread thread1 = new CreateByThread();
            CreateByThread thread2 = new CreateByThread();
            thread1.start();
            thread2.start();
        }
    }

覆写Runnable()接口实现多线程

    //覆写Runnable()接口实现多线程,而后同样覆写run().推荐此方式
    public static class CreateByRunnable implements Runnable{
        public CreateByRunnable() {}
        
        @Override
        public void run() {
            for(int i=0;i<10;i++) {
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }
        
        public static void main(String[] args) {
            CreateByRunnable runnable = new CreateByRunnable();
            Thread thread1 = new Thread(runnable, "thread1");
            Thread thread2 = new Thread(runnable, "thread2");
            thread1.start();
            thread2.start();
        }
    }

覆写Callable接口实现多线程

    //3.覆写Callable接口实现多线程(JDK1.5)
    public static class CreateByCallable implements Callable<String>{
        @Override
        public String call() throws Exception {
            for(int i=0;i<10;i++) {
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
            return "OK";
        }
        
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            Callable<String> callable = new CreateByCallable();
            FutureTask<String> futureTask = new FutureTask<>(callable);
            FutureTask<String> futureTask2 = new FutureTask<>(callable);
            Thread mThread=new Thread(futureTask);
            Thread mThread2=new Thread(futureTask2);
            mThread.start();
            mThread2.start();
            System.out.println(futureTask.get());
            System.out.println(futureTask2.get());
        }
    }

通过线程池启动多线程

    //4.通过线程池启动多线程
    public static class CreateByThreadPool{
        public void testFixThreadPool() {
            testSubmit(Executors.newFixedThreadPool(5));
        }
        
        public void testSingleThreadPoolExecutor() {
            testSubmit(Executors.newSingleThreadExecutor());
        }
        
        public void testCashedThreadPool() {
            testSubmit(Executors.newCachedThreadPool());
        }
        
        private void testSubmit(ExecutorService executorService) {
            for(int i=0;i<5;i++) {
                executorService.submit(new Runnable() {
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        for(int j=0;j<10;j++) {
                            System.out.println(Thread.currentThread().getName()+":"+j);
                        }
                    }
                });
            }
            executorService.shutdown();
        }
        
        public static void main(String[] args) {
            CreateByThreadPool pool = new CreateByThreadPool();
            pool.testFixThreadPool();
            pool.testCashedThreadPool();
            pool.testSingleThreadPoolExecutor();
        }
    }

源码请点击此处哦

相关文章

  • 【java基础】线程

    java基础 线程 参考详细:Java之多线程 一、创建线程 创建线程常见有两种方式,另外有两种新增方式 1.Th...

  • Java之多线程4种创建

    继承Thread类实现多线程。覆写Runnable()接口实现多线程。覆写Callable接口实现多线程。通过线程...

  • Python多线程

    目录:一、线程的创建二、多线程互斥锁三、线程间通信四、线程池 Python并发之多线程 一、线程的创建 单线程示例...

  • Java 多线程之线程的创建及其使用

    一、创建线程以及启动线程 二、停止线程 三、线程类中函数详解 一、创建线程以及启动线程 创建线程:Java中创建线...

  • 2018-08-15

    java学习第一天之多线程 包:java.lang : 类:class...

  • 线程池的使用

    Java线程池 前言 平时使用Java线程时,习惯于直接new Thread来创建一个线程,这种创建线程的方法随手...

  • 线程

    java 中创建线程有哪几种方式? Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定...

  • Java基础(六)

    多线程 Java多线程并发 1.1 JAVA 并发知识库 1.2 JAVA 线程实现/创建方式 1.2.1 继承 ...

  • Java之多线程

    这个东西不用说,必学,必用,面试必问 一.概念 先来介绍一下进程线程的区别,进程就是一个电脑上运行的各个应用程序....

  • Java之多线程

    Thread(耦合,不推荐) Runnable(解耦,推荐) Executors ExecutorService ...

网友评论

      本文标题:Java之多线程4种创建

      本文链接:https://www.haomeiwen.com/subject/sclftctx.html