两者都表示线程当前暂停执行的状态,而两者的区别,基本可以理解为:进入 waiting 状态是线程主动的,而进入 blocked 状态是被动的。更进一步的说,进入 blocked 状态是在同步(sync ...
两者都表示线程当前暂停执行的状态,而两者的区别,基本可以理解为:进入 waiting 状态是线程主动的,而进入 blocked 状态是被动的。更进一步的说,进入 blocked 状态是在同步(sync ...
CUP数和核数的乘积为合适 ...
如果bean有后置处理器,bean生命周期有七步: 1.通过构造方法创建bean实例(无参构造); 2.为bean的属性设置值和对其它bean引用(调用set方法); 3.把bean ...
IO的处理过程: 该模式下每个请求都会创建一个线程,有点事稳定,适合连接数目小且固定架构。缺点是对性能开销大,不适合高并发场景。 为解决这一问题JAVA在1.4之后增加了NIO, ...
线程阻塞的原因,有三大类: 1.获取锁,得不到,就进入到等待锁的阻塞队列。 只有占有锁的线程,释放锁时,才会唤醒这个队列中的线程。 notify不会唤醒该队列中的线程 ...
要想弄清楚这个问题,那就得先搞清楚COUNT()函数,COUNT()函数可以有如下几种用法: 1、SELECT COUNT(字段名) FROM 表名; 解释:统计该字段名不为null的数据总数 ...
在spring中可通过使用注解@Transcation( propagation = "传播机制")实现事务的传播,Spring中有7种传播机制 1.默认传播:PROPAGATION_REQUIRE ...
优点 (1)快速构建项目 (2)对主流开发框架的无配置集成 (3)项目可独立运行,无需外部依赖 Servlet 容器 (4)提供运行时的应用监控 (5)极大地提高了开发、部署效率 (6)与 ...
Redis常见存储类型: 1.String类型,最常用的类型,通过key值存储字符串类型的value值,适用于存储字符串、JSON串等; 2.list类型,遵循存储的有序性,适用于使用 ...
HashTable 底层数组+链表实现,无论可以还是value都不能为null,线程安全,实现线程安全的方式是在修改数据时锁住整个HashTable,效率低,ConcurrentHashMap ...