
java多线程并发编程
文章平均质量分 82
To-Big_Fish
爱编程,爱运动,爱游戏。。。
展开
-
java并发编程 -volatile关键字
java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他的线程。当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存操作一起重排序,volatile变量 不会被缓存在寄存器或者对处理器不可见的地方,因此在读取volatile变量时总会返回最新写入的值。访问volatile变量不会执行加锁操作,因此也原创 2015-04-28 21:54:01 · 1218 阅读 · 1 评论 -
java多线程、并发系列之 (synchronized)同步与加锁机制
SynchronizedJava中每个对象都有一个内置锁,当程序运行到非静态的synchronized同步方法上时,自动获得与正在执行代码类的当前实例(this实例)有关的锁。获得一个对象的锁也称为获取锁、锁定对象、在对象上锁定或在对象上同步。当程序运行到synchronized同步方法或代码块时才该对象锁才起作用。一个对象只有一个锁。所以,如果一个线程获得该锁,就没有其他线程可以获得锁,直到第一原创 2015-04-30 18:49:18 · 15299 阅读 · 0 评论 -
多线程的一些面试题目及其解答
1、线程的基本概念、线程的基本状态及状态之间的关系? 线程又称轻量级进程,线程是进程中某个单一顺序的控制流,是程序执行流的最小单位。线程由线程ID、当前指令指针、寄存器集合和堆栈组成。线程是进程的一个实体,通常一个进程都拥有若干个线程,是被系统调度和分配的基本单位,线程与同一进程中的其他线程共享进程的全部资源。线程有五种基本状态:新生状态,就绪状态,运行状态,阻塞状态,死亡状态。状态间关原创 2014-12-30 14:28:25 · 1434 阅读 · 2 评论 -
java多线程并发系列之闭锁(Latch)和栅栏(CyclicBarrier)
-闭锁(Latch)闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态。通俗的讲就是,一个闭锁相当于一扇大门,在大门打开之前所有线程都被阻断,一旦大门打开所有线程都将通过,但是一旦大门打开,所有线程都通过了,那么这个闭锁的状态就失效了,门的状态也就不能变了,只能是打开状态。也就是说闭锁的状态是一次性的,它确保在闭锁打开之前所有特定的活动都需要在闭锁打开之后原创 2015-05-28 16:45:57 · 34357 阅读 · 2 评论 -
java多线程并发系列之锁的深入了解
上一篇博客中 :java多线程、并发系列之 (synchronized)同步与加锁机制。介绍了java中Synchronized和简单的加锁机制,在加锁的模块中介绍了 轮询锁和定时锁,简单回顾下轮询锁:利用tryLock来获取两个锁,如果不能同时获得,那么回退并重新尝试。定时锁:索取锁的时候可以设定一个超时时间,如果超过这个时间还没索取到锁,则不会继续堵塞而是放原创 2015-06-23 22:01:07 · 1326 阅读 · 0 评论 -
java 多线程并发系列之 生产者消费者模式的两种实现
生产者消费者模式是并发、多线程编程中经典的设计模式,生产者和消费者通过分离的执行工作解耦,简化了开发模式,生产者和消费者可以以不同的速度生产和消费数据。真实世界中的生产者消费者模式生产者和消费者模式在生活当中随处可见,它描述的是协调与协作的关系。比如一个人正在准备食物(生产者),而另一个人正在吃(消费者),他们使用一个共用的桌子用于放置盘子和取走盘子,生产者准备食物,如原创 2015-05-14 16:59:48 · 19496 阅读 · 7 评论 -
Java 多线程、并发系列之线程定义和线程状态
一、定义线程1、扩展java.lang.Thread类。此类中有个run()方法,应该注意其用法:public void run()java.lang类 Threadjava.lang.Object java.lang.Thread所有已实现的接口:Runnablepublic class Thread原创 2015-04-25 09:22:04 · 1585 阅读 · 0 评论