第一章 线程通信
1、等待与唤醒方法
A.等待: Object 当中的方法 wait()
B.唤醒: Object 当中的方法 notify() notifyAll()
2、生产者和消费者
A.代码结构:
run() - while(true) -> synchronized(锁) -> if wait -> 改变bian ->notify
B.记忆顺序:
R-W-S-F-W-B-N
第二章 线程池
1、线程池的含义
一个容纳多个线程的容器,提前创建好的,可以从容器中取出,使用完毕归还
举例: 共享单车
2、线程池优点
A.资源消耗降低
B.响应速度变快
C.管理线程容易
3、线程池操作步骤
A. ExecutorService service = Executors.newFixedThreadPool(2); //创建线程池对象。
B. MyRunnable r = new MyRunnable(); //创建Runnable接口子类对象。(task)
C. service.submit(r); //提交Runnable接口子类对象。(take task)
D. service.shutdown(); //关闭线程池(一般不做)。
第三章 Lambda表达式
1. 【标准格式】
(Type1 param1,Type2 param2)->{return 语句体;}
2.【简化格式】
编译器都可以推断出lambda表达式的参数类型,所以参数类型可以省略
(param1,param2)->{return 语句体;}
3.【省略小括号】
当lambda表达式的参数个数只有一个,可以省略小括号:
param->{return 语句体;}
4.【省略大括号】
当lambda表达式只包含一条语句时,可以省略大括号、return和语句结尾的分号;
param->语句体