zoukankan      html  css  js  c++  java
  • java基础 多线程创建方式

    第一种继承Thread类 重写run方法

    class CreateThread extends Thread {
        // run方法中编写 多线程需要执行的代码
        publicvoid run() {
            for (inti = 0; i< 10; i++) {
                System.out.println("i:" + i);
            }
        }
    }
    public class ThreadDemo {
    
        public static void main(String[] args) {
            System.out.println("-----多线程创建开始-----");
            // 1.创建一个线程
            CreateThread createThread = new CreateThread();
            // 2.开始执行线程 注意 开启线程不是调用run方法,而是start方法
            System.out.println("-----多线程创建启动-----");
            createThread.start();
            System.out.println("-----多线程创建结束-----");
        }
    
    }

    第二种实现Runnable接口,重写run方法

    class CreateRunnable implements Runnable {
    
        @Override
        publicvoid run() {
            for (inti = 0; i< 10; i++) {
                System.out.println("i:" + i);
            }
        }
    
    }
    
    /**
     * 
     * @classDesc: 功能描述:(实现Runnable接口,重写run方法)
     * @author: 余胜军
     * @version: v1.0
     * @copyright:上海每特教育科技有限公司
     */
    public class ThreadDemo2 {
        public static void main(String[] args) {
            System.out.println("-----多线程创建开始-----");
            // 1.创建一个线程
            CreateRunnable createThread = new CreateRunnable();
            // 2.开始执行线程 注意 开启线程不是调用run方法,而是start方法
            System.out.println("-----多线程创建启动-----");
            Thread thread = new Thread(createThread);
            thread.start();
            System.out.println("-----多线程创建结束-----");
        }
    }

    第三种使用匿名内部类方式

    public class ThreadDemo4 {

      public static void main(String[] args) {
        System.out.println("创建线成功!");
        //使用匿名内部类方式创建线程
        new Thread(new Runnable() {

        @Override
        public void run() {
          for (int i = 0; i < 100; i++) {
          System.out.println("run() i:" + i);
          }
          }
        }).start();

        System.out.println("创建线結束!");
        // thread.start();
        for (int i = 0; i < 100; i++) {
          System.out.println("main() i:" + i);
        }
      }

    }


    常用线程api方法

    start()

    启动线程

    currentThread()

    获取当前线程对象

    getID()

    获取当前线程ID      Thread-编号  该编号从0开始

    getName()

    获取当前线程名称

    sleep(long mill)

    休眠线程

    Stop()

    停止线程

    常用线程构造函数

    Thread()

    分配一个新的 Thread 对象

    Thread(String name)

    分配一个新的 Thread对象,具有指定的 name正如其名。

    Thread(Runable r)

    分配一个新的 Thread对象

    Thread(Runable r, String name)

    分配一个新的 Thread对象

  • 相关阅读:
    C# 依赖注入中的 控制反转(Assembly)实现
    C# 依赖注入中的 控制反转(Assembly)实现
    Asp.net web form 动态生成控件的注意事项
    jackson的转换object转map
    SpringCloud+Feign+Hystrix使用FallbackFactory统一处理,查看服务调用异常或失败,进入熔断降级处理的原因
    feign调用返回object类型转换成实体
    Springboot @ResponseBody返回中文乱码
    Feign 传参问题及传输Date类型参数的时差 坑
    Mybatis plus条件构造器QueryWrapper的简单用法
    Java命令里面的EQ、NE、GT、LT、GE、LE分别代表含义
  • 原文地址:https://www.cnblogs.com/angdh/p/13443537.html
Copyright © 2011-2022 走看看