欢迎大家指导与讨论 : ) 前言 Angular的作用域在本质上是分层次的(有的住户在低层, 有的住户在高层), 它们可以通过父子关系很自然地进行沟通。但通常, 这种沟通是单向的(父->子的单向沟通), 并且它们的作用域不共享变量, 它们的执行功能往往也各不相同, 也与它们父树上的位置无关。因此,在
分类:
Web程序 时间:
2016-02-29 09:21:41
阅读次数:
201
创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java 1.5开始,就提供了Callable
分类:
其他好文 时间:
2016-02-19 00:17:19
阅读次数:
240
volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码: class Volat
分类:
编程语言 时间:
2016-02-03 01:06:27
阅读次数:
267
本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/java-memory-model-4 volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile
分类:
编程语言 时间:
2016-01-31 21:40:17
阅读次数:
236
本文通过介绍Java的新/旧内存模型,来展示Java技术的历史变迁。 旧的Java内存模型 Java使用的是共享内存的并发模型,在线程之间共享变量。Java语言定义了线程模型规范,通过内存模型控制线程与变量的交互,从而实现Java线程之间的通信。在JDK5之前,Java一直使用的是旧内存模型。如图1
分类:
编程语言 时间:
2016-01-30 22:28:40
阅读次数:
259
李家智Table of Contents1. 什么是Beetl2. 基本用法2.1. 从GroupTemplate开始2.2. 模板基础配置2.3. 模板资源加载器2.4. 定界符与占位符号2.5. 注释2.6. 临时变量定义2.7. 全局变量定义2.8. 共享变量2.9. 模板变量2.10. 引用...
分类:
其他好文 时间:
2016-01-20 18:46:57
阅读次数:
15149
volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class Volatil...
分类:
编程语言 时间:
2016-01-19 23:30:28
阅读次数:
252
注:在阅读本章之前,先要了解Java内存模型,见上一章《附1 Java内存模型与共享变量可见性》,链接如下:http://www.cnblogs.com/java-zhao/p/5124725.html1、volatile用法具体的用法可以参照《第二章 ConcurrentHashMap源码解析》中...
分类:
其他好文 时间:
2016-01-12 22:52:44
阅读次数:
180
JMM: Java Memory Model(Java内存模型),围绕着在并发过程中如何处理可见性、原子性、有序性这三个特性而建立的模型。可见性: JMM提供了volatile变量定义、final、synchronized块来保证可见性。 例如:线程a在将共享变量x=1写入主内存的时候,如何保...
分类:
移动开发 时间:
2016-01-10 14:20:26
阅读次数:
280
Java并发编程:Callable、Future和FutureTask在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的...
分类:
编程语言 时间:
2015-12-28 12:04:31
阅读次数:
269