您的位置:首页 > 其它

day24总结_多线程和设计模式

2018-03-07 23:42 197 查看

1、多线程

①、JDK5以后的针对线程的锁定操作和释放操作// 定义锁对象
private Lock lock = new ReentrantLock();
// 加锁
lock.lock();
// 释放锁
lock.unlock();②、死锁问题的描述和代码体现*死锁:两个或两个以上的线程在争夺资源的过程中,发生的一种相互等待的现象。
public void run() {
if (flag) {
synchronized (MyLock.objA) {
System.out.println("IF objA");
synchronized (MyLock.objB) {
System.out.println("IF objB");
}
}
} else {
synchronized (MyLock.objB) {
System.out.println("IF objB");
synchronized (MyLock.objA) {
System.out.println("IF objA");
}
}
}
}
③、生产者和消费者多线程体现(线程间通信问题)// 基础版本
// 改进版本1
// 改进版本2
// 最终版本3
A:最基本的版本,只有一个数据。
B:改进版本,给出了不同的数据,并加入了同步机制
C:等待唤醒机制改进该程序,让数据能够实现依次的出现
wait()
notify()
notifyAll() (多生产多消费)
D:等待唤醒机制的代码优化。把数据及操作都写在了资源类中
④线程组
⑤线程池
⑥多线程实现的第三种方案
⑦多线程的面试题

二、设计模式

①面试对象的常见设计原则
单一
开闭
里氏
依赖注入
接口
迪米特
②设计模式概述和分类
A:经验的总结
B:三类
创建型
结构型
行为型
③改进的设计模式
A:简单工厂模式
B:工厂方法模式
C:单例模式(掌握)
a:饿汉式

b:懒汉式
④Runtime
JDK提供的一个单例模式应用的类。
还可以调用dos命令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: