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