IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【小白学java】D37》》》线程入门学习,线程池 & Lambda表达式 -> 正文阅读

[Java知识库]【小白学java】D37》》》线程入门学习,线程池 & Lambda表达式

在这里插入图片描述


【友情链接】???线程入门学习,线程(多线程)的实现

【友情链接】???线程入门学习,线程同步机制 和 线程等待与唤醒机制


一、线程池

了解线程池

????????线程池概念∶ 线程池其实就是一个容纳多个线程的容器,线程池中的线程可以反复的使用,这样我们就省去了频繁创建线程对象的操作,无需因为反复创建线程而导致资源消耗过多。

Java中线程池的概念是在JDK1.5之后提供的

(1java.util.concurrent.Executors  :
  				是线程池的工厂类,主要是用来生成线程池
  				
    Executors类中的静态方法有:
    static ExecutorService newFixedThreadPool(int nThreads) 
    	该方法是用于创建一个可重用的固定线程数量的线程池
        方法参数:
            int nThreads:指定要创建线程池中包含的线程的数量
        返回值:
            ExecutorService接口
              返回的是ExecutorService接口的实现类对象,
	              可以使用ExecutorService接来接收

(2java.util.concurrent.ExecutorService :为线程池接口
        用来从线程池中获取线程,调用start()方法来执行线程任务
       方法:
       submit(Runnable task)方法:提交一个Runnable任务用于执行
       void shutdown()方法: 用于关闭或者销毁线程池

使用线程池的步骤

  • 1.使用线程池的工厂类Executors提供的静态方法newFixedThreadPool()方法生产一个指定线程数量的线程池
  • 2.创建Runnable接口的实现类,并重写run方法,设置线程的任务
  • 3.调用ExecutorService类的对象的submit()方法,传递线程任务(实现类),开启线程,执行run()方法
  • 4.调用ExecutorService类的对象的shutdown()方法销毁线程池

示例代码:

ublic static void main(String[] args) {
        //1.使用线程池的工厂类Executors提供的静态方法newFixedThreadPool()方法生产一个指定线程数量的线程池
        ExecutorService executorService = Executors.newFixedThreadPool(2);
        //2.创建Runnable接口的实现类,并重写run方法,设置线程的任务
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        };
        // 3.调用executorService类的对象的submit()方法,传递线程任务(实现类),开启线程,执行run()方法
        executorService.submit(runnable);
        executorService.submit(runnable);
        executorService.submit(runnable);
        //线程池会一直开启着,当线程池中的线程被使用完了之后,线程会自动归还到线程池,还可以下一次使用

        // 4.调用ExecutorService类的对象的的shutdown()方法销毁线程池
        executorService.shutdown();//程序不会一直执行了
    }

测试结果:
在这里插入图片描述

二、Lambda表达式

了解Lambda表达式

????????Lambda表达式是在2014年3月Oracle发布的JDK1.8版本中添加的Java新特性;Lambda表达式其实就是一个匿名函数,Lambda表达式能够使用更加简洁更加灵活的代码来实现匿名内部类要实现的功能,该函数省略了我们使用匿名内部类时要写的多行代码,使用Lambda表达式我们最直接的感受就是只要写一行极少行甚至一行代码就能够实现匿名内部类中多行代码的功能。

Lambda表达式的使用----标准格式:

标准格式是由三个部分组成分别是:参数、箭头、代码

使用格式:
	(参数列表) -> { 重写方法的代码 };

格式说明:
 ():是指接口中抽象方法的参数列表,没有参数,就空着;
 	有参数就写出参数,多个参数使用逗号分隔
 ->:表示传递的意思,就是指把参数列表中的参数传递到 { }中的方法体()
 {}: 指重写接口的抽象方法的方法体


注意:
()使用Lambda表达式时,可以省略书写
	1.(参数列表):参数列表中的数据类型,可以省略
	2.(参数列表): 若只有一个参数,那么参数的类型和()都可以省略
	3.{代码}:若{}中只有一行代码,无论是否有返回值,那么{}和返回值以及分号都可以省略,
	注意省略了(){}return时分号一定要一起省略
	
(二)使用它Lambda表达式的前提
	1.使用Lambda表达式必须具有接口,并且接口中有且只有一个抽象方法
			(这种类型的接口也称为“函数式接口”)
	2.使用Lambda表达式必需要有上下文联系推断的关系逻辑

示例代码:

public static void main(String[] args) {
        //创建多线程,使用匿名内部类
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName()+"匿名内部类实现多线程");
            }
        }).start();

        //使用Lambda表达式,实现多线程
        new Thread(() -> {
            System.out.println(Thread.currentThread().getName()+"Lambda标准格式实现多线程");
        }).start();

        //Lambda表达式,省略书写格式
        new Thread(() ->System.out.println(Thread.currentThread().getName()+"Lambda省略格式实现多线程")).start();

    }

测试结果:
在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:17:12  更:2021-08-10 13:17:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 0:37:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码