- 浏览: 8810 次
- 性别:
- 来自: 南京
最新评论
文章列表
从图中看到,JVM内存分为两个主要区域,一个是所有线程共享的数据区,一个是线程隔离数据区线程私有)
CountDownLatch是concuurent包里的一个工具类,它是一个计数器,它允许一个或者多个线程一直在等待,直到所有线程全部执行完成之后再执行。
CountDownLatch是什么
untDownLatch是在java1.5被引入的,跟它一起被引入的并发工具类还有CyclicBa ...
BeanFactory很好理解是 IOC 容器的原始基本形式或者说是IOC的核心高级抽象接口形式,用来管理bean的工厂。spring中所有的bean都是用BeanFactory来进行管理的。他的作用包括1.IOC定位xml的位置;2.用来实例化bean(使用getBean()方法)。3.载入xml中bean配置并建立bean之间的依赖关系,贯穿了ioc的初始化bean和 依赖注入(部分)的过程。这里不得不提一下大家熟悉的applicationContext,他包含了beanFactory还扩展了其他很多功能,所以我们一般都用他,而忽视了beanFactory。
Factor ...
用来学习视频赚积分用的,后来厂里出了1分钟不动鼠标就暂停的版本就没用了。
纯娱乐,记录下来。
public static void main(String[] args) throws Exception {
List<String> courses= new ArrayList<String>();
String encoding="GBK";
File file=new File("D:\\MyConfiguration\\Desktop\\course.txt& ...
小程序的图片上传与传统的图片上传方式有一些不一样
如果你有幸看到这篇文章,恭喜你,你可以完美解决了。
话不多说,前后端代码一并奉上:
(基于springmvc )
@Controller
@RequestMapping("/upload")
public class UploadController {
private static final Logger logger = LoggerFactory.getLogger(UploadController.class);
@RequestMapping("/picture" ...
我发现平时很多人写单例都写的不明不白,东拼西凑乱七八糟的写:
有的性能上没有实现lazyload(程序启动即加载到内存)
有的线程不安全
有的代码不够简洁明了实现复杂
甚至有的连构造私有都没有
看过下面这种写法可以彻底解决上述问题,可以称之为完美单例,看完代码此贴了结。
package java.hanson.single;
/**
* 完美单例
* 皇叔* 2018年11月2日
*/
public class Singleton {
//构造私有
private Singleton(){
}
//内部类,需要时才加载,并且线程安全
private ...
不卖关子,答案是具有原子性,但是在某些情况下也没有原子性。
1.具有
准确的说volatile 是具有可见性的,其核心原理是当对volatile标记的变量进行修改时,会将其他缓存的线程中的的变量值清除。当其他缓存中的线程读取此变量值时,会首先向主线程中缓存获取到消息,将新值传给当前线程并赋值。每次变量更新volatile变量时都会重复此步骤。
所以,从这种意义上来说,入门书籍《Java编程思想》告诉我们。,定义long或double变量时,如果使用volatile关键字,就会获得(简单的赋值与返回操作)原子性。
2.不具有
但是volatile有个条件,用在getAndOp ...
1.定时任务JOB
定时任务扫描数据库 ,不详述了。
优点:简单易行,支持集群操作
缺点:(1)对服务器内存消耗大。
(2)存在延迟,比如你每隔3分钟扫描一次,那最坏的延迟时间就是3分钟。
(3)数据量大时数据库损耗极大。
2.JDK的延迟队列DelayedQueue
优点:效率高,任务触发时间延迟低。
缺点:(1)服务器重启后,数据全部消失,怕宕机
(2)集群扩展相当麻烦
(3)因为内存条件限制的原因,比如下单未付款的订单数太多,那么很容易就出现OOM异常
...