多线程
文章平均质量分 88
yqferin
纸上得来终觉浅,绝知此事要躬行!
展开
-
Java 理论与实践: 正确使用 Volatile 变量
volatile 变量使用指南Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量。这两种机制的提出都是为了实现代码线程的安全性。其中 Volatile 变量的同步性较差(但有时它更简单并且开销更低),而且其使用也更容易出错。本文将介绍几种正确使用 volatile 变量的模式,并针对其适用性限制提出一些建议。Java 语言中的 volatile 变量可以转载 2015-04-11 16:55:46 · 224 阅读 · 0 评论 -
java并发编程之ConcurrentHashMap
ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和HashTable功能相同但是线程安全的方法。ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁。ConcurrentHashMap的内部结构转载 2015-04-11 15:11:03 · 277 阅读 · 0 评论 -
ConcurrentHashMap之实现细节
ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。其实现之精巧,令人叹服,与大家共享之。实现原理锁分离 (Lock Stripping)ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不转载 2015-04-11 10:22:21 · 315 阅读 · 0 评论 -
java多线程总结
java中的多线程在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口。直接继承Thread代码大致框架是:class 类名 extends Thread{方法1;方法2;…public void run(){// other code…}属性1;属性2;…}先看一个简单的例子:/** * @author Rollen-Holt 继承转载 2015-04-09 17:22:14 · 287 阅读 · 0 评论 -
Java中的ReentrantLock和synchronized两种锁定机制的对比
多线程和并发性并不是什么新内容,但是 Java 语言设计中的创新之一就是,它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类,可以用它来构建、启动和操纵线程,Java 语言包括了跨线程传达并发性约束的构造 —— synchronized 和 volatile 。在简化与平台无关的并发类的开发的同时,它绝没有使并发类的编写工作变得更繁琐,只是使它变转载 2015-05-30 09:23:29 · 366 阅读 · 0 评论 -
Java Concurrency In Practice 阅读笔记(第一、二部分)
第一章:简介1.1 并发简史促使进程出现的因素:资源利用率、公平性以及便利性等。这些因素同样也促使着线程的出现。线程允许同一个进程中同时存在多个程序控制流。线程会共享进程范围内的资源,例如内存句柄和文件句柄,但每个线程都有自己的程序计数器、栈以及局部变量等。在同一个程序中的多个线程也可以被同时调度到多个CPU上运行。线程也被称为轻量级进程。线程是现代操作系统中基本的调度单位。1.2原创 2015-05-17 09:14:43 · 1553 阅读 · 0 评论 -
synchronized与static synchronized 的区别
1.synchronized与static synchronized 的区别synchronized是对类的当前实例进行加锁,防止其他线程同时访问该类的该实例的所有synchronized块,注意这里是“类的当前实例”, 类的两个不同实例就没有这种约束了。那么static synchronized恰好就是要控制类的所有实例的访问了,static synchronized是限制线程同时访问jvm中该类原创 2015-06-07 15:34:15 · 491 阅读 · 0 评论