11 2022 档案
摘要:这篇文章是关于这两个同步锁的简单总结比较,关于底层源码实现原理没有过多涉及,后面会有关于这两个同步锁的底层原理篇幅去介绍。 相似点: 这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外
阅读全文
摘要:jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock。虽然在性能上ReentrantLock和synchronized没有什么区别,但ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。 2.
阅读全文
摘要:CAS,即Compare and Swap,是基于硬件级别的指令实现的同步原语,Java并发包java.utile.concurrent许多同步类基于CAS构建,因此可见CAS的重要性; 定义 处理器(包括 Intel 和 Sparc 处理器)使用的最通用的方法是实现名为比较并转换或CAS的原语,在
阅读全文
摘要:#传入的参数在SQL中显示为字符串,$传入的参数在SqL中直接显示为传入的值. #方式能够很大程度防止sql注入,$方式无法防止Sql注入; 1、传入的参数在SQL中显示不同 #传入的参数在SQL中显示为字符串(当成一个字符串),会对自动传入的数据加一个双引号。 例:使用以下SQL select i
阅读全文
摘要:在我们日常业务开发中,如果遇到使用线程池的场景时,会先去思考一下这种场景需要使用到怎样的线程池,去避免线程资源滥用。这个时候选择困难症就来了,不过不用担心,Java其实早就已经给我们提供了六种快速创建线程池的方法,并且不需要设置繁琐参数,开箱即用。 FixedThreadPool(有限线程数的线程池
阅读全文
摘要:为什么用线程池?解释下线程池参数 1 、降低资源消耗;提高线程利用率,降低创建和销毁线程的消耗。 2 、提高响应速度;任务来了,直接有线程可以使用,而不是先创建,再执行。 3 、提高线程的可管理性;线程是稀缺资源,使用线程池可以统一分配调优监控。 1)corePoolSize 代表核心线程数,也就是
阅读全文
摘要:原子性、可见性、有序性 1. 原子性 https://blog.csdn.net/jiang_wang01/article/details/113066647 含义 一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。 在 Java 中,对基本数据类型的变量的读取和赋值操作是
阅读全文
摘要:https://blog.csdn.net/qq_45464560/article/details/120804492 ThreadLocal介绍官方介绍 ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能够保证各个线程的变量相对独立于其
阅读全文