多线程
文章平均质量分 82
苦瓜_Tan
这个作者很懒,什么都没留下…
展开
-
JAVA 线程状态以及synchronized,wait,sleep,yield,notify,notifyAll
java线程存在以下几种状态:1: 创建tai原创 2014-08-15 17:42:48 · 819 阅读 · 0 评论 -
Fork/Join框架介绍
转自:http://www.infoq.com/cn/articles/fork-join-introduction1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/J转载 2015-07-14 10:08:19 · 374 阅读 · 0 评论 -
CountDownLatch与CyclicBarrier详解
1. CountDownLatch1.1 简介CountDownLatch是一个同步辅助类,通过它可以完成类似于阻塞当前线程的功能,即:一个线程或多个线程一直等待,直到其他线程执行的操作完成。CountDownLatch用一个给定的计数器来初始化,该计数器的操作是原子操作,即同时只能有一个线程去操作该计数器。调用该类await方法的线程会一直处于阻塞状态,直到其他线程调用countDown原创 2015-07-13 17:34:45 · 2870 阅读 · 1 评论 -
多线程Future之Guava ListenableFuture
前面文章“多线程之Runnable,Callable,Future,FutureTask”中介绍了多线程Future的相关内容,传统JDK中的Future表示一个异步计算任务,当任务完成时可以得到计算结果。Future是运行中的多线程的一个引用句柄,确保在服务执行返回一个Result。如果我们希望一旦计算完成就拿到结果展示给用户或者做另外的计算,就必须使用另一个线程不断的查询计算状态。这样原创 2015-05-08 11:29:51 · 2991 阅读 · 0 评论 -
多线程之Executor框架
Executor框架是指JAVA 5中引入的java.util.concurrent包中的一系列功能类。包括了Executor,Executors,ExecutorService,AbstractExecutorService,Future,Callable,Runnable等。如下图:一:ExecutorExecutor作为顶层接口,只提供了一个执行任务的方法。void ex原创 2015-02-04 16:34:19 · 723 阅读 · 0 评论 -
多线程之ThreadFactory
一般情况下,创建一个线程,常采用三种方式:1. 继承Thread类2. 实现Runnable接口3. 实现Callable接口现在可以通过ThreadFactory新建线程,ThreadFacotry是线程的工厂类,采用设计模式中的工厂模式,这样我们就可以给该工厂中的所有线程进行统一的管理。ThreadFactory接口:public interface ThreadFac原创 2015-02-03 19:05:39 · 639 阅读 · 0 评论 -
多线程之Runnable,Callable,Future,FutureTask
实现任务接口Runnable与Callable都是实现线程的方式,二者之间主要有以下几种区别1. 需要实现的方法不同实现Runnable接口需要实现run方法 public interface Runnable { /** * When an object implementing interface Runnable is used * to cr原创 2015-02-03 19:17:43 · 664 阅读 · 0 评论 -
多线程之ThreadPoolExecutor
转自: http://my.oschina.net/jielucky/blog/157250123456789101112ThreadPoolExecutor pool = newThreadPoolExecutor(corePoolSize,转载 2015-02-03 20:12:34 · 614 阅读 · 0 评论 -
多线程之ScheduledExecutorService
一:接口方法ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。下面是该接口的原型定义java.util.concurrent.ScheduleExecutorService extends ExecutorService extends Ex原创 2015-02-03 20:02:10 · 667 阅读 · 0 评论 -
多线程之ThreadGroup
在Java中每一个线程都归属于某一个线程组(ThreadGroup)管理,即线程组表示一个线程的集合。此外,线程组也可以包含其他的线程组。线程组可以设定所有线程的一些属性。通过Thread.currentThread().getThreadGroup().getName()可以获取当前线程所属于的线程组。ThreadGroup方法介绍1. 构造方法:创建一个指定名称的线程组,默认该线程原创 2015-02-03 19:40:05 · 547 阅读 · 0 评论 -
多线程设计模式读书笔记(一)
1. Single Thread Execution Pattern1. 概念 该Pattern用来限制多个线程同时对share resource的访问只让一个线程访问,一般通过synchronzied或lock来完成。2. demoGate类(ShareResource),多线程共同访问。public class Gate { private int counter =原创 2015-01-28 17:11:00 · 440 阅读 · 0 评论 -
java synchronized与volatile的区别
java线程同步有两个特性,一个是可见性,一个是有序性。在解释这两个概念之前,先解释原创 2014-09-28 19:28:18 · 463 阅读 · 0 评论 -
Java如何等待子线程执行结束
工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了.一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线程的流程, 往往需要让主线程指定后, 等待子线程的完成. 这里有几种方式.站在 主线程的角度, 我们可以分为主动式和被动式.主动式指主线主动去检测某个标志位, 判断子线程是否已转载 2014-09-26 11:24:41 · 470 阅读 · 0 评论 -
java中如何使正在运行中的线程退出
终止线程的三种方法 有三种方法可以使终止线程。 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。 3. 使用interrupt方法中断线程。 1. 使用退出标志终止线程转载 2014-09-26 11:33:03 · 5527 阅读 · 0 评论 -
JAVA wait(), notify(),sleep详解
转自:在JAVA中,是没有类似于PV操作、进程互斥等相关的方法的。JAVA的进程同步是通过synchronized()来实现的,需要说明的是,JAVA的synchronized()方法类似于操作系统概念中的互斥内存块,在JAVA中的Object类型中,都是带有一个内存锁的,在有线程获取该内存锁后,其它线程无法访问该内存,从而实现JAVA中简单的同步、互斥操作。明白这个原理,就能理解为什么s转载 2014-08-15 19:25:19 · 325 阅读 · 0 评论 -
semaphore简介
以前写过关于线程同步辅助类: CountDownLatch和CyclicBarrier,本次介绍写另一个线程同步辅助类:Semaphore。简介信号量(semaphore)是在多线程环境下负责协调各个线程,正确合理的使用公用资源。Semaphore是基于计数的信号量。它可以设定一个阈值,多个线程竞争获取许可信号,做完自己的申请后归还,超过阈值后,线程申请许可信号将会被阻塞。Semaphore可以用来原创 2017-05-10 21:44:00 · 575 阅读 · 0 评论