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


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

    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(); } }
  • 相关阅读:
    《构建高性能web站点》阅读笔记(三)
    哈希表的C实现(一)
    《大规模web服务开发技术》阅读笔记
    CentOS搭建python开发环境
    Instagram的技术探索(2)
    CentOS5.5编译安装gvim7.3 失败记录
    由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭
    wp开发中解决gb2312的编码问题
    WP8 SDK 视图设计器 未将对象设置到对象的实例解决方法
    Oracle误删表的恢复
  • 原文地址:https://www.cnblogs.com/dongl961230/p/13323446.html
Copyright © 2020-2023  润新知