
java.并发
文章平均质量分 92
emiya_hatsune
这个作者很懒,什么都没留下…
展开
-
【转】java 并发工具不完全浅谈
转】java 并发工具不完全浅谈 这篇文章就主要讨论讨论Java并发中的任务执行,来作为我整理的地一篇文章吧。 文中难免有错,如果发现问题,可以即时站内或者回帖交流。 OK,言归正传 首先来看一下,任务的定义: 所谓的任务,就是抽象,离散的工作单位。你可以简单理解为代码级别的 (Runnable接口) 大多数并发应用程序都是围绕着任务进行管理的. 我们来看一小段代码: ...原创 2015-03-11 19:19:18 · 117 阅读 · 0 评论 -
【转】深入浅出CyclicBarrier
如果说CountDownLatch是一次性的,那么CyclicBarrier正好可以循环使用。它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。所谓屏障点就是一组任务执行完毕的时刻。 清单1 一个使用CyclicBarrier的例子 package xylz.study.concurrency.lock; import java.ut...原创 2015-03-13 00:14:03 · 92 阅读 · 0 评论 -
【转】CountDownLatch, CyclicBarrier, Semaphore 简介
这次说一下 JUC 中的同步器三个主要的成员:CountDownLatch、CyclicBarrier 和 Semaphore(不知道有没有初学者觉得这三个的名字不太好记)。这三个是 JUC 中较为常用的同步器,通过它们可以方便地实现很多线程之间协作的功能。(下面的代码出自 JDK 文档) CountDownLatch 直译过来就是倒计数(CountDown)门闩(Latch)。倒计数不用...原创 2015-03-13 00:03:56 · 121 阅读 · 0 评论 -
【转】java 多线程总览
Java线程:概念与原理 一、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。...原创 2015-03-12 23:33:01 · 153 阅读 · 0 评论 -
【转】为什么不使用Thread.stop()方法
为什么不能使用Thread.stop()方法? 从SUN的官方文档可以得知,调用Thread.stop()方法是不安全的,这是因为当调用Thread.stop()方法时,会发生下面两件事: 1. 即刻抛出ThreadDeath异常,在线程的run()方法内,任何一点都有可能抛出ThreadDeath Error,包括在catch或finally语句中。 2. 释放该线程所持有的所有的锁 ...原创 2015-03-12 21:15:53 · 266 阅读 · 0 评论 -
【转】java之yield(),sleep(),wait()区别详解-备忘笔记
ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它...原创 2015-03-12 20:57:17 · 112 阅读 · 0 评论 -
【转】java yield, sleep 区别
1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线程执...原创 2015-03-12 20:28:37 · 85 阅读 · 0 评论 -
【转】java中wait/notify机制
通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程displayThread想要执行显示图片的任务,必须等待下载线程 downloadThread将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务 后,再通知displayThread“图片准备完毕,可以显示了”,这时,displayThread继续执行。以上逻辑...原创 2015-03-12 19:05:03 · 84 阅读 · 0 评论 -
【转】java synchronized 详解
java synchronized详解 记下来,很重要。 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代...原创 2015-03-11 19:28:22 · 1093 阅读 · 0 评论 -
【转】浅谈futureTask
API: Java代码 public interface Executor { void execute(Runnable command); } public interface ExecutorService extends Executor { <T> Future<T&...原创 2015-03-11 19:26:29 · 81 阅读 · 0 评论 -
【转】Java并发框架Executor学习笔记
Java SE5的java.util.concurrent包中的执行器(Executor)将为你管理Thread对象,从而简化了并发编程。Executor在客户端和执行任务之间提供了一个间接层,Executor代替客户端执行任务。Executor允许你管理异步任务的执行,而无须显式地管理线程的生命周期。Executor在Java SE5/6中时启动任务的优选方法。Executor引入了一些功能类...原创 2015-03-11 19:22:10 · 133 阅读 · 0 评论 -
【转】java Lock 简介
Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行...原创 2015-03-13 14:58:11 · 78 阅读 · 0 评论