博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2021年5月10日

摘要: Spring事务的实现方式和原理以及隔离级别? 在使用spring的时候,事务有两种形式,一种是编程式,一种是声明式。@Transactional就是声明式事务。 首先,事务的概念是数据库层面的,spring只是基于此进行了扩展。 在一个方法上加了@Transactional注解后,会将这个代理对象 阅读全文

posted @ 2021-05-10 19:53 南国木棉 阅读(1270) 评论(0) 推荐(0) 编辑

2021年4月15日

摘要: Spring 是什么? 轻量级的 开源j2ee框架,它是一个容器框架,用来装javabean(Java对象),中间层框架,可以起一个连接作用,比如把Struts2和hibernate连接在一起使用,可以让我们的企业开发更快,更简捷。 Spring是一个轻量级的控制反转(ioc)和面向切面(aop)的 阅读全文

posted @ 2021-04-15 18:55 南国木棉 阅读(88) 评论(0) 推荐(0) 编辑

2021年4月12日

摘要: 线程池中阻塞队列的作用?为什么是先添加队列而不是先创建最大线程? 1 一般的队列只能保证作为一个有限长度的缓冲区,如果超出了缓冲长度,就无法保留当前的任务了,阻塞队列通过阻塞可以保留住当前想要继续入队的任务。 阻塞队列可以保证任务队列中没有任务时阻塞获取任务的线程,使得线程进入wait状态,释放cp 阅读全文

posted @ 2021-04-12 21:16 南国木棉 阅读(3278) 评论(3) 推荐(2) 编辑

摘要: 为什么用线程池?解释下线程池参数 1 、降低资源消耗;提高线程利用率,降低创建和销毁线程的消耗。 2 、提高响应速度;任务来了,直接有线程可以使用,而不是先创建,在执行。 3 、 提高线程的可管理性;线程是稀缺资源,使用线程池可以统一分配调优监控。 1)corePoolSize 代表的最大线程数,也 阅读全文

posted @ 2021-04-12 20:43 南国木棉 阅读(358) 评论(0) 推荐(0) 编辑

2021年4月11日

摘要: 首先解释下并发,并行,串行 串行:时间上不冲突,顺序执行。 并行:同时执行,但互不干扰。 并发:允许两个任务彼此干扰,统一时间点,只有一个任务在执行。 比如:A线程执行0.5秒,然后暂停,执行B线程0.5秒,然后再回来执行A0.5秒。 并发三大特性 原子性 可见性 有序性 原子性:指在一个操作中cp 阅读全文

posted @ 2021-04-11 13:54 南国木棉 阅读(577) 评论(0) 推荐(0) 编辑

摘要: ThreadLocal的原理和使用场景 每一个Thread对象,均含有一个ThreadLocalMap类型的成员变量,threadLocals,它存储本线程中所有的ThreadLocal对象及其对应值。 ThreadLocalMap对象由一个Entry对象构成。 Entry继承自weakRefere 阅读全文

posted @ 2021-04-11 10:51 南国木棉 阅读(1132) 评论(0) 推荐(0) 编辑

2021年4月10日

摘要: 谈谈对线程安全的理解 线程安全可以理解为内存安全,堆是内存共享,可以被所有的内存访问。 当多个线程访问同一个对象时,如果不进行额外的同步控制或者其他的协调操作,调用这个对象的行为都可以获得正确的结果,我们就说这个对象时线程安全的。 堆是进程和线程共有的空间,分全局堆和局部堆,全局堆就是所有没有分配的 阅读全文

posted @ 2021-04-10 14:39 南国木棉 阅读(915) 评论(0) 推荐(0) 编辑

摘要: sleep和wait的区别: 1 sleep是Thread的静态方法,wait是object方法。 2 sleep不会释放锁,wait会释放锁。 3 sleep不需要唤醒,而wait需要被唤醒。 yield 方法的作用是放弃当前cpu资源,将它让给其他的任务去占用cpu执行时间,但放弃的时间不确定, 阅读全文

posted @ 2021-04-10 14:26 南国木棉 阅读(76) 评论(0) 推荐(0) 编辑

摘要: 线程的生命周期?线程有几种状态? 1 线程通常有五种状态,创建,就绪,运行,阻塞和死亡状态。 2 祖泽的情况又分三种 1)等待阻塞,当线程调用wait方法的时候, 2)同步阻塞, 当线程未拿到同步锁的时候。 3)其他阻塞,运行sleep或者join方法的时候。 新建状态(new):新创建了一个线程。 阅读全文

posted @ 2021-04-10 14:09 南国木棉 阅读(529) 评论(0) 推荐(1) 编辑

摘要: Gc如何判断对象可以被回收? 1 引用计数器:每一个对象有一个引用属性,新增一个引用时加一,引用释放时减一,计数为0的时候可以回收。 2 可达性分析:从GcRoot开始向下搜索,搜索所走过的路径被称为引用链,当一个对象到GcRoot没有任何引用链相连时,则证明此对象是不可用的,那么虚拟机就可以判定回 阅读全文

posted @ 2021-04-10 14:03 南国木棉 阅读(552) 评论(0) 推荐(0) 编辑