文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

微服务 第一章 Java线程池技术应用

2023-09-16 05:43

关注

系列文章目录

第一章 Java线程池技术应用

在这里插入图片描述


文章目录

前言

介绍Java的线程、线程池等操作

1、Java创建线程方式回顾

1.1、继承Thread类(只运行一次)

public class ThreadTest extends Thread{    @Override    public void run() {        System.out.println(Thread.currentThread().getName());    }    public static void main(String[] args) {        new ThreadTest().start();    }}

1.1.1、改造成主线程常驻,每秒开启新线程运行

import java.util.Date;@Slf4jpublic class ThreadTest extends  Thread{    @Override    public void run() {        log.info("线程名称:{} , 当前时间:{}" , Thread.currentThread().getName() , new Date().getTime() );    }    public static void main(String[] args) {        while (true) {            try {                new ThreadTest().start();                Thread.sleep(1000);            } catch (InterruptedException e) {                throw new RuntimeException(e);            }            log.info("主线程常驻");        }    }}

1.1.2、匿名内部类

import lombok.extern.slf4j.Slf4j;@Slf4jpublic class ThreadTest extends  Thread{    public static void main(String[] args) {        Thread thread = new Thread() {            @Override            public void run() {                log.info("Hello {}" , "world");            }        };        thread.start();    }}

1.1.3、缺点

继承了Thread类之后,就不能继承其他类

1.1.4、扩展知识:Java内部类

成员内部类(外部类内部使用,外部类外部使用)

import lombok.extern.slf4j.Slf4j;@Slf4jpublic class Outer {    public static void main(String[] args) {        Inner inner = new Outer().initTest();        log.info(inner.innerTest());    }    public Inner initTest(){        Inner inner = new Inner();        return  inner;    }    class Inner{        public Inner(){        }        public Inner(String s){        }        public String innerTest(){            return "Inner Hello world";        }    }}

1.1.4.1、静态内部类

import lombok.extern.slf4j.Slf4j;@Slf4jpublic class Outer {    public static void main(String[] args) {        Inner inner = new Inner();        log.info(inner.innerTest());    }    public void initTest(){        Inner inner = new Inner();    }    static class Inner{        public Inner(){        }        public Inner(String s){        }        public String innerTest(){            return "Inner Hello world";        }    }}

1.1.4.2、匿名内部类

import lombok.extern.slf4j.Slf4j;@Slf4jpublic class Outer {    public static void main(String[] args) {        Outer outer = new Outer();        outer.sayHello();    }    public void sayHello(){        IMessage iMessage = new IMessage() {            //匿名类            @Override            public String sayHello() {                return "Hello world";            }        };        log.info(iMessage.sayHello());    }    interface IMessage{        String sayHello();    }}

1.2、实现Runnable接口

1.2.1、普通类实现Runnable接口

import lombok.extern.slf4j.Slf4j;@Slf4jpublic class StatSales implements Runnable{    @Override    public void run() {        log.info("统计销量");    }    public static void main(String[] args) {        Thread thread = new Thread() {            @Override            public void run() {                log.info("Hello world");            }        };        thread.start();    }}

1.2.2、匿名方式创建Runnable实现类

public static void main(String[] args) {        Runnable runnable = new Runnable() {            @Override            public void run() {                System.out.println("统计成绩");            }        };        new Thread(runnable).start();    }

1.2.3、使用Lambda方式创建匿名Runnable类

// 使用 Lambda 匿名 Runnable 方式
Thread t3 = new Thread(() -> {
//添加业务方法…
});
// 启动线程
t3.start();

public static void main(String[] args) {    Thread thread = new Thread(() -> {        System.out.println("统计平均寿命");    });    thread.start();}

1.2.4、缺点

不能获得程序的执行结果

1.2.5、扩展Lambda表达式

把函数作为一个方法的参数
表达式语法:

(parameters) -> expression

(parameters) ->{ statements; }

说明:

来源地址:https://blog.csdn.net/s445320/article/details/132870714

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯