zoukankan      html  css  js  c++  java
  • 多线程-创建线程的方式

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

    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(); } }
  • 相关阅读:
    Jquery:强大的选择器<一>
    要经营我的园子了!!!
    Json在Struts中的转换与传递
    MyEclipse快捷键大全
    Pyqt在QListWidget中添加右键菜单
    swift中Double转String
    Spring MVC 关于分页的简单实现
    Spring MVC 通过@Value注解读取.properties配置内容
    SQL 查询语句(备份)
    Idea使用说明
  • 原文地址:https://www.cnblogs.com/dongl961230/p/13323446.html
Copyright © 2011-2022 走看看