前言:
本文内容:CUP密集型和IO密集型、函数型接口和断定型接口、消费型接口和供给型接口
推荐免费JUC并发编程视频:【狂神说Java】JUC并发编程最新版通俗易懂_哔哩哔哩_bilibili
CUP密集型和IO密集型
最大线程该如何设置!
-
CPU密集型(根据CPU核心数设置)
1
| Runtime.getRuntime().availableProcessors();
|
-
IO密集型(大于程序中十分耗费资源的的IO线程数量即可)
函数型接口和断定型接口
必须要掌握:lambda表达式、链式编程、函数式接口、Stream流式计算
函数式接口概述
函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
函数式接口可以被隐式转换为 lambda 表达式。
Function函数型接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| package com.jokerdig.function;
import java.util.function.Function;
public class Demo01 { public static void main(String[] args) {
Function function = (str)->str; System.out.println(function.apply("jokerdig")); } }
|
运行结果
1 2 3
| jokerdig
Process finished with exit code 0
|
Predicate断定型接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| package com.jokerdig.function;
import java.util.function.Predicate;
public class Demo02 { public static void main(String[] args) {
Predicate<String> predicate = String :: isEmpty; System.out.println(predicate.test("jokerdig")); } }
|
运行结果
1 2 3
| false
Process finished with exit code 0
|
消费型接口和供给型接口
Consumer消费型接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| package com.jokerdig.function;
import java.util.function.Consumer;
public class Demo03 { public static void main(String[] args) {
Consumer<String> consumer = (str)-> System.out.println(str); consumer.accept("jokerdig"); } }
|
运行结果
1 2 3
| jokerdig
Process finished with exit code 0
|
Supplier供给型接口
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| package com.jokerdig.function;
import java.util.function.Supplier;
public class Demo04 { public static void main(String[] args) {
Supplier<Integer> supplier = () -> 1024; System.out.println(supplier.get()); } }
|
运行结果
1 2 3
| 1024
Process finished with exit code 0
|