9月11日
悲观锁和乐观锁
2023-09-11 11:39:43
悲观锁就是某个事务在更新数据过程中将数据锁定,其他任何事务都不能读取或修改,必须修改完成后才能访问数据。悲观锁的实现是利用数据库的锁机制,只需要在SQL语句后加上for update即可开启观锁,悲观锁的特点有排他性,应用场景一般股适用于短事务处理。
乐观锁并不是一种数据库锁机制,而是一种冲突检测机制(版本冲突检测机制和时间戳冲突检测机制,它的特点就是并发性较好,事务修改数据时,其他事务仍可以修改数据。
悲观锁的优点是可以保障数据库的数据是绝对安全的,它是依赖数据库的锁机制,能很好的解决数据库访问的并发性问题。缺点是会导致数据库访问性能低下,所以适合短事务(事务执行时间很短)的情况。它的使用场景是对数据安全性要求非常高的场景,比如银行系统、金融系统等乐观锁的优点是可以保障并发性比较好(也就是数据库访问性能不错),因为它是一种软件的冲突检测机制,并不依赖于数据库的锁机制。它的缺点是并没彻底解决数据库访问的并发性问题,所以数据库的数据不是绝对安全的。它的使用场景是对比如各种信息管理系统等数据安全性要求不高而对性能要求很高的场景,比如各种信息管理系统等.
代理模式
快捷识图 2023-09-12 09:51:06
1.代理模式是为目标对象创建代理对象以提供一种代理机制,让代理对象能控制目标对象的访问,并且可以在不改变目标对象的情况下为目标对象添加额外的功能。
2.代理模式类图是需要定义代理接口、目标类和代理类,目标类和代理类实现代理接口,同时代理类与目标类有依赖关系。实现代理模式有两种方式:静态代理和动态代理。
3.代理模式的优点有
1)代理模式在客户对象和目标对象之间起到一个中介作用和保护目标对象的作用
2)代理对象可以扩展目标对象的功能
3)代理模式能将客户对象与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性。
4.代理模式的缺点有
1)代理模式会造成系统设计中的类数量增加
2)在客户对象和目标对象之间增加一个代理对象,会造成请求处理速度变慢
3)在一定程度增加了系统的复杂度
5.常见代理模式的应用场景有远程代理、虚拟代理、安全代理、智能指针、延迟加载等。