说一下Spring中bean的加载过程,BeanFactory和FactoryBean有什么区别 概述 Spring 作为 Ioc 框架,实现了依赖注入,由一个中心化的 Bean 工厂来负责各个 Bean 的实例化和依赖管理。各个 Bean 可以不需要关心各自的复杂的创建过程,达到了很好的解耦效果。 ...
分类:
其他好文 时间:
2019-10-04 16:45:11
阅读次数:
83
GIL是什么 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同 ...
分类:
编程语言 时间:
2019-10-04 13:00:16
阅读次数:
92
php中图片资源路径 结构是ul包裹四个li,每个li中div包裹img和p li中div的class类名为item 样式: 用jquery中的ajax实现 实现loading效果: loading样式: 首先用jquery中的ajax获取数据: 获取到的数据是string形式,转换成json形式 ...
分类:
其他好文 时间:
2019-10-04 09:58:31
阅读次数:
77
显式锁-Lock与ReadWriteLockJDK针对Lock的主要实现是ReentrantLock,ReadWriteLock实现是ReentrantReadWriteLock。本文主要介绍ReentrantLock。 ReentrantReadWriteLock两把锁共享一个等待队列,两把锁的状 ...
分类:
其他好文 时间:
2019-10-04 09:51:30
阅读次数:
66
数据库中的锁 锁分类 按锁的粒度划分:表级锁、行级锁、页级锁 按锁级别划分:共享锁、排它锁、意向锁 按加锁方式划分:自动锁、显示锁 按使用方式划分:乐观锁、悲观锁 MySQL中的行级锁、表级锁和页级锁 行级锁:行级锁分为共享锁和排他锁。行级锁是MySQL中锁定粒度最细的锁。InnoDB引擎支持行级锁 ...
分类:
数据库 时间:
2019-10-03 19:42:15
阅读次数:
124
3.1 CopyOnWriteArrayList 简介 在很多应用场景中,读操作可能会远远大于写操作。由于读操作根本不会修改原有的数据,因此对于每次读取都进行加锁其实是一种资源浪费。我们应该允许多个线程同时访问List的内部数据,毕竟读取操作是安全的。 这和我们之前在多线程章节讲过 Reentran ...
分类:
编程语言 时间:
2019-09-30 18:31:38
阅读次数:
112
效果图【未加锁,会发现数字1没出现,进程间资源抢夺导致】: 优化之后效果: 代码: ...
分类:
编程语言 时间:
2019-09-30 09:28:18
阅读次数:
99
ReentrantLock内部包含了一个AQS对象,也就是AbstractQueuedSynchronizer类型的对象。这个AQS对象就是ReentrantLock可以实现加锁和释放锁的关键性的核心组件。 线程A,B尝试进行加锁的过程: CountDownLatch应用场景:并行计算的时候,如果某 ...
分类:
其他好文 时间:
2019-09-29 23:50:46
阅读次数:
103
1.结构 1.7 segment+HashEntity+Unsafe 1.8 移除Segment,使锁的粒度更小,Synchronized+CAS+Node+Unsafe 2. put() 1.7 先定位 Segment,再定位桶, put 全程加锁,没有获取锁的线程提前找桶的位置,并最多自旋64次 ...
分类:
其他好文 时间:
2019-09-29 22:13:19
阅读次数:
118
singleton模式属于创建型设计模式。其作用是在程序设计中,对于某一个类而言,全局只能存在一个实例对象。 下面以C++为例,对单例模式进行说明: 1. 最基本单例模式(单线程) 存在问题:在单线程下,只有instance == null 时,才会创建新对象,其余时间返回。但是对于多线程访问时,当 ...
分类:
其他好文 时间:
2019-09-29 13:06:47
阅读次数:
91