Yongtao's Blog

坚守 无畏 宽容 进取


  • 首页

  • 归档

  • 搜索

volatile关键字解析[转载]

发表于 2017-07-16 | 更新于 2023-02-20 | 分类于 编程语言 , Java | 阅读次数

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。

  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。

  以下是本文的目录大纲:
  一.内存模型的相关概念
  二.并发编程中的三个概念
  三.Java内存模型
  四.深入剖析volatile关键字
  五.使用volatile关键字的场景
  若有不正之处请多多谅解,并欢迎批评指正。

  请尊重作者劳动成果,转载请标明原文链接:
  http://www.cnblogs.com/dolphin0520/p/3920373.html

阅读全文 »

传统定时器技术

发表于 2017-07-16 | 更新于 2023-02-20 | 分类于 编程语言 , Java | 阅读次数

传统定时器技术

5秒后爆炸,然后每隔3秒爆炸一次

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Test
public void testTimer01() {
/**
* 面向对象的方式思考:一个定时器实例,拥有计划schedule方法,具体的任务由TimerTask实现.
*/
new Timer().schedule(new TimerTask() {
@Override
public void run() {
System.out.println(Thread.currentThread().getName() + " !!!bombing!!! ");
}
}, 5000, 3000);

while (true) {
System.out.println(Thread.currentThread().getName() + " " + Calendar.getInstance().get(Calendar.SECOND));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
阅读全文 »

传统线程技术

发表于 2017-07-16 | 更新于 2023-02-20 | 分类于 编程语言 , Java | 阅读次数

创建并启动一个线程

方法一

1
2
3
4
5
6
7
8
9
10
public static void main(String[] args) {
Thread thd01 = new Thread("thd01") {
@Override
public void run() {
System.out.println("the Thread " + Thread.currentThread().getName() + " is executing.");
}
};
thd01.start();
System.out.println("the Thread " + Thread.currentThread().getName() + " is executing.");
}
阅读全文 »
1…1112
wangyt

wangyt

白日不到处,青春恰自来
苔花如米小,也学牡丹开

58 日志
29 分类
45 标签
RSS
GitHub 微博
Creative Commons
  • How2j
  • 寒泉子
  • 朱双印
© 2016 - 2023 wangyt