• 多线程-创建线程的方式


    既然学习多线程,那你就要知道线程是如何创建的,线程又是如何启动的,下面就看一下,线程的创建和启动;

    1、创建线程的方法一般有三种:

    • 继承Thread类
    • 实现Runnable接口
    • 实现Callable接口

    2、启动线程的方法一般有四种:

    • new T01().start();
    • new Thread(new T02()).start();
    • FutureTask+Callable
    • Executors.newCachedThreadPool();

    话不多说直接上代码:

    package com.example.demo.threaddemo.howtocreatethread;
    
    import java.util.concurrent.*;
    
    public class How_to_create_thread {
    
        //第一种:继承Thread 类
        public static class T01 extends Thread{
            @Override
            public void run() {
                for (int i = 0; i <10; i++) {
                    try {
                        TimeUnit.MICROSECONDS.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("extends thread ----------------");
                }
            }
        }
    
        //第二种: 实现Runnable接口
        public static class T02 implements Runnable{
    
            @Override
            public void run() {
                for (int i = 0; i < 10; i++) {
                    try {
                        TimeUnit.MICROSECONDS.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("implements runnable -----------------");
                }
            }
        }
    
        //第三种: 实现Callable接口
        public static class T03 implements Callable{
    
            @Override
            public String call() throws Exception {
                for (int i = 0; i < 10; i++) {
                    try {
                        TimeUnit.MICROSECONDS.sleep(10);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("implements Callable ------------------");
                }
                return "success";
            }
        }

    //线程启动测试类
    public static void main(String[] args) { //一般线程的启动方法 new T01().start(); new Thread(new T02()).start(); new Thread(new FutureTask<String>(new T03())).start(); //使用lamada表达式启动线程 new Thread(()->{ System.out.println("lamada -------------------------"); }).start(); //线程池的方式 ExecutorService service = Executors.newCachedThreadPool(); service.execute(()->{ System.out.println("Thread pool --------------------"); }); service.shutdown(); } }
  • 相关阅读:
    17、网卡驱动程序-DM9000举例
    16、NOR FLASH驱动框架
    15.1 linux操作系统下nand flash驱动框架2
    15、NAND FLASH驱动程序框架
    14、块设备驱动程序框架分析
    12.2 linux USB框架分析(详细注册match匹配过程)
    arm-linux-gcc: Command not found
    12、USB设备驱动程序
    POJ-2752 Seek the Name, Seek the Fame (KMP)
    POJ-2406 Power Strings (KMP)
  • 原文地址:https://www.cnblogs.com/dongl961230/p/13323446.html
Copyright © 2020-2023  润新知