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

本文详细介绍了Java多线程编程的基础知识,包括线程的锁定操作、死锁问题及生产者消费者模型等核心概念。同时,文章还探讨了设计模式的相关原理,如工厂模式、单例模式等,并讲解了其在实际开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值