线程与并发
文章平均质量分 85
siyangshen
这个作者很懒,什么都没留下…
展开
-
Java多线程基本概念回顾
Java多线程基本概念回顾 ------------------------------- 线程又称轻量级进程,它和进程一样有独立的执行控制,由操作系统负责调度。区别在于线程没有独立的存储空间,而是和所属进程中其它的线程共享一个存储空间。 每条线程都有自己的工作内存,工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量的传...原创 2012-10-28 10:14:38 · 80 阅读 · 0 评论 -
并发编程回顾:信号量Semaphore
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 信号量Semaphore 根据JDK文档描述: 一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许...原创 2013-07-16 06:43:47 · 140 阅读 · 0 评论 -
并发编程回顾:延迟阻塞队列DelayQueue
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 延迟阻塞队列DelayQueue 根据JDK文档描述: Delayed元素的一个无界阻塞队列,只有在延迟期满时才能从中提取元素。该队列的头部是延迟期满后保存时间最长的Delayed元素。如果延迟都还没有期满,则队列没有头部,并且poll将返回null。当一个元素的 g...原创 2013-07-16 06:40:40 · 180 阅读 · 0 评论 -
并发编程回顾:循环阻断器CyclicBarrier
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 循环阻断器CyclicBarrier CyclicBarrier(循环栅栏):没有找到合适的名字,这里自己翻译成循环阻断器。 感觉这个工具类其实和CountDownLatch很像,不同的是CountDownLatch是等待一组其它线程,CyclicBarrier是一组...原创 2013-07-14 12:48:41 · 184 阅读 · 0 评论 -
并发编程回顾:倒计数锁CountDownLatch
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 倒计数锁CountDownLatch 根据JDK文档中的描述: 在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 这里给出2个例子如下。 首先定义一个工作线程: class WorkerThread implements Runnable ...原创 2013-07-14 11:02:41 · 201 阅读 · 0 评论 -
并发编程回顾:队列
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 队列 可以使用同步队列来解决任务协作问题,同步队列在任意时刻都只允许一个任务插入或移除元素。 同步队列的实现: 1、java.util.concurrent包中的BlockingQueue接口提供了这个队列,且该接口有大量实现,举例如下: 首先定义一个任务Task...原创 2013-06-26 06:43:35 · 106 阅读 · 0 评论 -
并发编程回顾:线程协作与Condition接口
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 线程协作与Condition接口 一、线程协作: Java提供的线程之间协作方式主要有两种: 1、Object类中提供的wait、notify、notifyAll: 这种方式历史悠久,本篇只简单介绍一下。 相关知识点: (1)wait()等待某个条件变化,这种...原创 2013-06-25 06:37:35 · 105 阅读 · 0 评论 -
并发编程回顾:原子操作
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 原子操作 一、什么是原子操作 原子操作是不能被线程调度机制中断的操作。一旦操作开始,它一定可以在可能发生的上下文切换之前(切换到其他线程执行)执行完毕。 原子操作可以应用于除long和double之外所有基本类型之上的简单操作。对于读取和写入除long和double...原创 2013-06-21 07:12:42 · 95 阅读 · 0 评论 -
并发编程回顾:睡眠和中断
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 睡眠和中断 一、线程睡眠 1、sleep Thread.sleep(time)方法应该比较常用,即在指定的毫秒数内让当前正在执行的线程休眠,如果有线程中断了当前线程,则抛出InterruptedException异常,且当前线程的中断状态被清除。 注意线程slee...原创 2013-06-20 06:24:59 · 130 阅读 · 0 评论 -
并发编程回顾:synchronized与Lock
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- synchronized与Lock Java中提供了2种线程同步的方式,一种是Java语言级的同步原语synchronized关键字,另一种是使用javase5中新提供的java.util.concurrent.locks.Lock相关接口。 一、synchroniz...原创 2013-06-20 06:24:13 · 124 阅读 · 0 评论 -
并发编程回顾:捕获线程异常
原先多线程并发编程的学习笔记和代码整理一下贴上来。--------------------------------- 捕获线程异常 javase5提供了一个新接口Thread.UncaughtExceptionHandler,该接口当Thread因未捕获的异常而突然终止时,调用处理程序。举例:首先定义一个任务。 class ExceptionThread implements Runna...原创 2013-06-19 06:38:01 · 124 阅读 · 0 评论 -
并发编程回顾:Runnable与Callable
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- Runnable与Callable Runnable工作是执行独立的任务,它不具备任何返回值。如果需要任务需要完成后返回一个值,使用Callable接口。 一、Runnable: 无返回值(void),如下 class Worker implements Runn...原创 2013-06-19 06:35:42 · 109 阅读 · 0 评论 -
并发编程回顾:线程创建与线程池
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 线程创建与线程池 一、线程创建 创建一个线程的方式有2种,一种是直接重写Thread类的run方法,另一种是实现Runnable接口重写run方法,然后传入Thread构造函数的方式启动。 1、直接使用Thread方式: class InnerThreadTask...原创 2013-06-18 07:26:40 · 137 阅读 · 0 评论 -
并发编程回顾:线程数据交换器Exchanger
原先多线程并发编程的学习笔记和代码整理一下贴上来。 --------------------------------- 线程数据交换器Exchanger 根据JDK文档描述: 可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给 exchange 方法,与伙伴线程进行匹配,并且在返回时接收其伙伴的对象。Exchanger 可能被视为 SynchronousQu...原创 2013-07-18 06:27:13 · 113 阅读 · 0 评论