最新文章列表

分析 Java 任务的执行

Java 并发中会大量使用到多线程,那么Java是如何使用多线程执行任务了? 线程池. 那线程池是如何调度任务的了? 按照我的理解是,Java 对 Runnable 或者 Callable 进行封装,Runnable 首先会被封装成 Callable, 然后对 Callable 做进一步的封装,封装成 FutureTask. 然后线程池调度 FutureTask, 但是实际上的执行还是通过 R ...
一剪梅 评论(0) 有2049人浏览 2019-01-13 20:26

FutureTask WaitNode 源码分析

waiter 存放等待的线程,这是一个单链表,没有用 lock 或者 sync 但是实现了线程安全. static final class WaitNode {         // 记录当前线程.         volatile Thread thread;         // 指向下一个线程.         volatile WaitNode next;         WaitNode ...
一剪梅 评论(0) 有1964人浏览 2019-01-11 17:24

Java并发编程:Callable、Future和FutureTask

在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。   这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。   如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。   而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务 ...
yuwenlin2008 评论(0) 有476人浏览 2018-04-01 22:07

JUC 常用类

CountDownLatch 场景:用10个线程分治计算1到 n 之和 构造函数: CountDownLatch(int count) 方法: await/countDown Semaphore 场景:实现一个有界的、可阻塞的、线程安全的 Set 构造函数: Semaphore(int permits) 方法: acquire/release CyclicBarrier 场景:可重复使用的 Co ...
dsxwjhf 评论(0) 有982人浏览 2016-04-07 19:36

Callable<V>、Future<V>详解 | Executor框架

  一:关于 Callable<V>的源码 package java.util.concurrent; public interface Callable<V> { /** * Computes a result, or throws an exception if unable to do so. * * @r ...
周凡杨 评论(0) 有4296人浏览 2015-09-29 18:12

FutureTask的使用示例

今天看书,有关于 FutureTask 的介绍,感觉还蛮有意思的,可以用它来做一些比较花时间的事情。下面打个通俗的比方来说明一下它的用处: 比如,早上一大早的去公交站台等公交,但那该死的公交20分钟才一班。如果一直死等公交,那么这20分钟无疑就被浪费了。我们可以利用这20分钟,去买个韭菜饼,再买一盒豆浆,然后一边吃一边等。这样就明显提高了时间的利用率。   下面给出一个段简单的代码来说明一下 ...
Rainbow702 评论(0) 有4046人浏览 2015-04-26 20:05

【转】浅谈futureTask

API: Java代码   public interface Executor {           void execute(Runnable command);    
RoomFourteen224 评论(0) 有391人浏览 2015-03-11 19:26

FutureTask实现缓存Demo

package com.samples.thread; import java.util.Date; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import j ...
liushulin 评论(0) 有1054人浏览 2014-05-15 15:31

<进阶-5> 线程池的原理和使用

一、线程池Executor 大多数并发应用程序都是围绕“任务执行(Task Execution)”来构造的:任务通常是一些抽象的且离散的工作单元。通过把应用程序的工作分解到多个任务中,可以简化程序的组织结构。 当围绕“任务执行”来设计应用程序结构时,第一步就是找出清晰的任务边界,理想情况下,各个任务是相互独立的:任务不依赖于其他任务的状态,结果或边界效应。 大多数服务器应用程序都提供了一种自然的 ...
足至迹留 评论(0) 有2315人浏览 2014-04-09 12:47

闭锁/栅栏/信号量/FutureTask分析及使用

闭锁/栅栏/信号量/FutureTask分析及使用   1、闭锁   用途:可用于命令一组线程在同一个时刻开始执行某个任务,或者等待一组相关的操作结束。尤其适合计算并发执行某个任务的耗时。   public class CountDownLatchTest { public void timeTasks(int nThreads, final Runnable task) t ...
海浪儿 评论(0) 有3592人浏览 2013-12-18 20:06

java 多线程学习-----初入线程池

   使用线程池初衷    最近项目做代码优化,有一业务功能,大致描述为有20几台分机往总机发送文件,总机在收到文件之后,会往分机反馈数据处理情况。     这时候想到使用调度来查询总机收到的消息,处理之后分别发送至各分机,为避免排队处理,决定使用多线程,并使用线程池来管理。     创建线程池     查找资料之后,采用JDK1.5的java.util.concurrent包创建线程池,本例使用 ...
xinbusiqq 评论(0) 有678人浏览 2013-11-18 22:39

【讨论帖】Mockito测试使用了TaskExecutor、FutureTask的类

  在Spring框架下写了一个东西,用到了org.springframework.core.task.TaskExecutor这个接口,用它来执行一个FutureTask实例,但编写单测的时候遇到个问题。       我按照惯常的套路编写单测:   @Resource TaskExecutor taskExecutorReal; // 从上下文中得到的实际的TaskExecutor ...
peizhyi 评论(0) 有2874人浏览 2013-06-03 15:25

java同步例子之FutureTask

仅在计算完成时才能获取结果;如果计算尚未完成,则阻塞 get 方法。一旦计算完成,就不能再重新开始或取消计算. package concurrent; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.Futu ...
buzhucele 评论(0) 有2063人浏览 2012-11-02 16:20

Future

在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现。 Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。 Future模式可以这样来描述:我有一个任务,提交给了Future,Future替我完成这个任 ...
T240178168 评论(0) 有2120人浏览 2012-10-27 23:10

Java并发编程-线程安全与基础构建模块

设计线程安全的类 1、实例封闭,将数据封装在对象内部,可以将数据的访问控制限制在对象的方法上,从而更容易确保线程在访问数据时总能持有正确的锁。     Java 中 Collections 类 为ArrayList,HashMap 提供了线程安全的实现。 主要是通过装饰器模式将容器封装在一个同步的包装器对象中,而包装器将接口中的每个方法都实现为同步方法,并将调用请求发布到底层的容器对象上。 2、j ...
lemon_1227 评论(0) 有1121人浏览 2012-04-22 15:02

synchronizer--JCIP5.5读书笔记

[本文是我对Java Concurrency In Practice 5.5的归纳和总结.  转载请注明作者和出处,  如有谬误, 欢迎在评论中指正. ]  Synchronizers synchronizer是指那些根据状态协调线程的对象. BlockingQueue就是一个典型的synchronizer: 当队列为空时, 取数据的消费者线程将被阻塞, 直到队列不为空; 当队列满时, 存入数据 ...
coolxing 评论(0) 有2342人浏览 2012-04-01 22:44

First glimpse at Java Concurrent from Executors to FutureTask

      最近刚刚写完一个多线程的模块,感叹java concurrent强大的同时,整理了下近一周学习,打算大概记录下, 主要是读了部分concurrent包的代码. 有 ...
songzi0206 评论(0) 有2319人浏览 2011-10-21 18:11

最近博客热门TAG

Java(141747) C(73651) C++(68608) SQL(64571) C#(59609) XML(59133) HTML(59043) JavaScript(54918) .net(54785) Web(54513) 工作(54116) Linux(50906) Oracle(49876) 应用服务器(43288) Spring(40812) 编程(39454) Windows(39381) JSP(37542) MySQL(37268) 数据结构(36423)

博客人气排行榜

    博客电子书下载排行

      >>浏览更多下载

      相关资讯

      相关讨论

      Global site tag (gtag.js) - Google Analytics