java
2B铅笔水果橡皮
这个作者很懒,什么都没留下…
展开
-
java线程池
整理了看的一些文章,关于java中多线程相关的知识。--------------------------------------------------------------------线程池的作用:限制系统中执行线程的数量。根据系统的环境情况,可以手动或者自动设置线程数量,以达到运行的最佳效果。线程数目少了就浪费了系统的资源,线程数据多了就造成系统拥挤效率不高。用线程池来控制线程的转载 2015-01-10 20:02:07 · 517 阅读 · 0 评论 -
关于volatile关键字
转载一些关于volatile的文章,后续会在java内存模型章节中具体说明语义。----------------------从原子性,可见性和有序性的角度分析,声明为volatile字段的作用相当于一个类通过get/set同步方法保护普通字段,如下:final class VFloat { private float value; final synchro转载 2015-01-15 15:37:17 · 509 阅读 · 0 评论 -
java内存模型之一---基础
一:并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模型里,线程之间没有公共状态,线转载 2015-01-16 15:40:50 · 431 阅读 · 0 评论 -
java内存模型之二---重排序
数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a= 1;b = a;写一个变量之后,再读这个位置。写后写a= 1;a = 2;写一个变量之后,再写这个变量。转载 2015-01-21 17:17:16 · 527 阅读 · 0 评论 -
java内存模型之四---volatile
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:如上面示例程序所示,对一个volatile变量的单个读/写操作,与对一个普通变量的读/写操作使用同一个监视转载 2015-02-28 15:48:36 · 437 阅读 · 0 评论 -
java内存模型之三--顺序一致性
数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程转载 2015-02-28 14:30:31 · 579 阅读 · 0 评论 -
深入理解abstract class 和 interface
原文链接:深入理解abstract class和interface理解抽象类abstract class和interface在Java语言中都是用来进行抽象类(本文中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为Java语言中用于定义抽象类的一种方法,请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为转载 2016-01-14 14:45:13 · 483 阅读 · 0 评论