thread
三易的博客
能动手就别哔哔
展开
-
线程(生产者消费者问题)
Thread 随堂笔记 线程:一个程序里的不同执行路径。 线程的启动: 方法一:实现Runnable接口(该接口只有一个方法 run) 方法二:从Thread继承 Thread中的sleep方法:在哪个线程中调用Thread.sleep();哪个线程休息 Thread中的Join方法:在哪个线程中调用join();就把调用该方法的对象加入到该线程。 T原创 2012-06-24 14:47:03 · 511 阅读 · 0 评论 -
java自定义线程阻塞
LockSupport 线程 阻塞原创 2016-11-15 15:19:39 · 553 阅读 · 0 评论 -
ThreadLocal源码解析,以及ThreadLocal、ThreadLocalMap、Thread 三者之间的关系
ThreadLocal、ThreadLocalMap、Thread 三者之间的关系 ThreadLocalMap 是 ThreadLocal 的内部类,Thread 中有个 ThreadLocalMap 成员变量 threadLocals ThreadLocal源码解析 下面看一下,jdk 关于 ThreadLocal api ThreadLocal类 g原创 2016-01-21 14:20:20 · 3921 阅读 · 0 评论 -
Java并发编程:深入剖析ThreadLocal
Java并发编程:深入剖析ThreadLocal 想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲: 一.对ThreadLocal的理解转载 2015-11-24 10:39:53 · 354 阅读 · 0 评论 -
深入理解Java内存模型(四)——volatile
(原文地址:http://www.infoq.com/cn/articles/java-memory-model-4) volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个 读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:c转载 2015-12-15 17:00:42 · 336 阅读 · 0 评论 -
深入理解Java内存模型(三)——顺序一致性
数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读没有通过同步来排序。 当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程程序的内存一致性做了如下保证:如果转载 2015-12-15 16:52:07 · 331 阅读 · 0 评论 -
深入理解Java内存模型(二)——重排序
(原文地址:http://www.infoq.com/cn/articles/java-memory-model-2) 数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型: 上面三种情况,只要重排序两个操作的执行顺序,程序的执行结果将会被改变。前面提到过,编译器和处理器可能会对操作做重排序。编译器和处理器在重排序时,会遵转载 2015-12-15 16:45:30 · 358 阅读 · 0 评论 -
深入理解Java内存模型(一)——基础
(原文地址:http://www.infoq.com/cn/articles/java-memory-model-1)并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程之间共享程序的公共状态,线转载 2015-12-15 16:38:39 · 351 阅读 · 0 评论