主要内容
- 等待与唤醒案例
- 线程池
- Lambda表达式
1 等待唤醒机制
调用wait和notify方法注意事项
1.必须用同一个锁对象调用
2.都属于Object类的方法
3.必须在同步代码块或者同步函数中使用
2 线程池
2.1容纳多个线程的容器
容纳多个线程的容器
好处:
1.降低资源消耗:减少了创建线程次数
2.提高响应速度:任务不需要创建线程就可以执行
3.提高线程管理性
2.2 线程池的使用
1.创建线程池对象
2.创建Runnable接口子类对象线程任务
3.将线程任务绑定线程池
Executors类创建线程池public static ExecutorService newFixedThreadPool(int nThreads): 返回线程池对象(可以指定线程个数的线程池) public Future<?> submit(Runnable task) 获取线程池中某对象并执行 Future接口:记录线程执行结果。线程池创建与使用 // 创建线程池对象 ExecutorService service = Executors.newFixedThreadPool(2);//包含2个线程对象 // 创建Runnable实例对象 MyRunnable r = new MyRunnable(); //自己创建线程对象的方式 // Thread t = new Thread(r); // t.start(); ‐‐‐> 调用MyRunnable中的run() // 从线程池中获取线程对象,然后调用MyRunnable中的run() service.submit(r);
···
3 Lambda表达式
3.1 Lambda的使用前提
1.Lambda使用必须有接口且只有一个抽象方法(也就是函数式接口)
2.必须具有上下文推断
3.2Lambda标准格式
- 一些参数:与传统方法参数列表一样
- 一个箭头:指向动作
- 一段代码:方法体
(参数类型 参数名称) -> {代码块}
3.3Lambda省略格式
省略规则:可推到可省略
1.小括号参数类型可以省略
2.如果小括号只有一个参数,可以省略小括号
3.大括号内只有一个语句,可以省略大括号、return、分号