Java并发
江东橘子
这个作者很懒,什么都没留下…
展开
-
Java 并发专题 : Semaphore 实现 互斥 与 连接池
继续并发方面的知识。今天介绍Semaphore,同样在java.util.concurrent包下。本来准备通过例子,从自己实现到最后使用并发工具实现,但是貌似效果并不是很好,有点太啰嗦的感觉,所有准备直入主题。介绍:Semaphore中管理着一组虚拟的许可,许可的初始数量可通过构造函数来指定【new Semaphore(1);】,执行操作时可以首先获得许可【semaphore.a转载 2017-11-28 11:18:05 · 321 阅读 · 0 评论 -
Java并发专题 带返回结果的批量任务执行 CompletionService ExecutorService.invokeAll
一般情况下,我们使用Runnable作为基本的任务表示形式,但是Runnable是一种有很大局限的抽象,run方法中只能记录日志,打印,或者把数据汇总入某个容器(一方面内存消耗大,另一方面需要控制同步,效率很大的限制),总之不能返回执行的结果;比如同时1000个任务去网络上抓取数据,然后将抓取到的数据进行处理(处理方式不定),我觉得最好的方式就是提供回调接口,把处理的方式最为回调传进去;但是现在我转载 2017-11-22 17:02:43 · 246 阅读 · 0 评论 -
Java并发
http://blog.csdn.net/lmj623565791/article/category/2132087转载 2017-11-22 13:55:09 · 210 阅读 · 0 评论 -
Executor详细介绍 打造基于Executor的Web服务器
继续并发,貌似并发的文章很少有人看啊~哈~今天准备详细介绍java并发包下的Executor,以及Java提供了很多灵活的且极其方便的线程池的创建。嗯,那就慢慢说,大家肯定都学过Socket,JavaSe的时候写聊天程序,游戏的服务器,以及Android程序自己需要提供服务器的,都会拿Socket来自己写个:最初我们的服务器可能写成这样:1、单线程服务器转载 2017-12-01 15:44:12 · 237 阅读 · 0 评论 -
CyclicBarrier和CountDownLatch区别
这两天写多线程时,用到了CyclicBarrier,下意识的认为CyclicBarrier和CountDownLatch作用很像,就翻阅资料查了一下,说一下他们的区别吧CyclicBarrier和CountDownLatch 都位于java.util.concurrent 这个包下CountDownLatchCyclicBarri转载 2017-12-01 15:27:07 · 180 阅读 · 0 评论 -
Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭
最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆。每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合。假设:3个人在不同的地方上班,必须等到3个人到场才能吃饭,用程序如何实现呢?作为一名资深屌丝程序猿,开始写代码实现:[java] view plain copy转载 2017-12-01 15:23:56 · 149 阅读 · 0 评论 -
Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
Git: https://github.com/whtchl/JavaConcurrentTemplate这次介绍CyclicBarrier:看一眼API的注释:[java] view plain copy/** * A synchronization aid that allows a set of thread转载 2017-12-01 15:03:41 · 157 阅读 · 0 评论 -
ExecutorService(任务调度器)详解
前言:这是一次艰苦的旅行...一.ExecutorService:它也是一个接口,它扩展自Executor接口,Executor接口更像一个抽象的命令模式,仅有一个方法:execute(runnable);Executor接口简单,但是很重要,重要在这种设计的模式上。。 ExecutorService在Executor的基础上增加了“service”特性的方法:转载 2017-12-01 13:52:08 · 1612 阅读 · 0 评论 -
Java中Synchronized的用法
原文:http://blog.csdn.net/luoweifu/article/details/46613015《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized.synchronized是Java中转载 2016-09-23 14:14:20 · 331 阅读 · 0 评论 -
Timer的缺陷 用ScheduledExecutorService替代
继续并发,上篇博客对于ScheduledThreadPoolExecutor没有进行介绍,说过会和Timer一直单独写一篇Blog.1、Timer管理延时任务的缺陷a、以前在项目中也经常使用定时器,比如每隔一段时间清理项目中的一些垃圾文件,每个一段时间进行数据清洗;然而Timer是存在一些缺陷的,因为Timer在执行定时任务时只会创建一个线程,所以如果存在多个任务,且任务时间过长,转载 2017-11-22 13:51:25 · 177 阅读 · 0 评论 -
FutureTask 实现预加载数据 在线看电子书、浏览器浏览网页等
FutureTask 有点类似Runnable,都可以通过Thread来启动,不过FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞。由于:FutureTask可以返回执行完毕的数据,并且FutureTask的get方法支持阻塞这两个特性,我们可以用来预先加载一些可能用到资源,然后要用的时候,调用get方法获取(如果资源加载完,直接返回;否则继续等待其转载 2017-11-29 14:40:40 · 276 阅读 · 0 评论 -
Callable和Future
接着上一篇继续并发包的学习,本篇说明的是Callable和Future,它俩很有意思的,一个产生结果,一个拿到结果。 Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务转载 2017-11-29 11:24:58 · 139 阅读 · 0 评论 -
Java ExecutorService四种线程池的例子与说明
1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub }}).start();那你就out太多了,new Thre转载 2017-11-22 14:35:54 · 173 阅读 · 0 评论