摘要: 我们所看到的Java字节码是被封装在一个类文件中(扩展名为.class)。在这个教程中,就让我们来看看类文件的内部构造。数据是如何被写入类文件以及类文件的格式是怎样的呢,让我们首先图解看一看Java类文件。Java类文件结构示意图:上图描绘的Java类文件被分为了不同的区段,包括魔术码(magic)... 阅读全文
posted @ 2015-11-20 19:01 vn2015 阅读(1138) 评论(0) 推荐(0) 编辑
摘要: 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个... 阅读全文
posted @ 2015-11-19 23:20 vn2015 阅读(140) 评论(0) 推荐(0) 编辑
摘要: Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实... 阅读全文
posted @ 2015-11-19 23:00 vn2015 阅读(259) 评论(0) 推荐(0) 编辑
摘要: JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开始针对多线程并发访问设计,提供了并... 阅读全文
posted @ 2015-11-19 22:59 vn2015 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对... 阅读全文
posted @ 2015-11-19 22:57 vn2015 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了Dequeue接口)。 使用非阻塞队列的时候有一个很大问题就是:它不会对当前线程产生阻塞,那么在面对类似消费者-生产者的模型时,就必须额外地实现同步策略以及线程间唤醒策... 阅读全文
posted @ 2015-11-19 20:34 vn2015 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 本文的目录大纲: 一.Java中关于应用程序和进程相关的概念 二.Java中如何创建线程 三.Java中如何创建进程 若有不正之处,请多多谅解并欢迎批评指正。 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/391351... 阅读全文
posted @ 2015-11-18 12:28 vn2015 阅读(128) 评论(0) 推荐(0) 编辑
摘要: Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制 在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。 Java语言是支持多线程的,为了解决线程并发... 阅读全文
posted @ 2015-11-15 14:53 vn2015 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同步容器类... 阅读全文
posted @ 2015-11-15 13:53 vn2015 阅读(117) 评论(0) 推荐(0) 编辑
摘要: java 监视器 java 的内部锁 被称作 监视器锁 或者 监视器 ... 线程的监视器,即线程所持有的锁,也就是synchronized所关联的对象。 =================== 线程的互斥,即同一数据的访问,为了访问数据的同步,维护数据的原子性。 ======== 线程的... 阅读全文
posted @ 2015-11-15 13:24 vn2015 阅读(514) 评论(0) 推荐(0) 编辑