![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
多线程
cangqiongshengjian
这个作者很懒,什么都没留下…
展开
-
Java 信号量 Semaphore 介绍
Semaphore当前在多线程环境下被扩放使用,操作系统的信号量是个很重要的概念,在进程控制方面都有应用。Java 并发库 的Semaphore 可以很轻松完成信号量控制,Semaphore可以控制某个资源可被同时访问的个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。比如在Windows下可以设置共享文件的最大客户端访问个数。 Semap...原创 2012-12-16 15:53:48 · 78 阅读 · 0 评论 -
CyclicBarrier同步工具应用
一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier 支持一个可选的 Runnable 命令,在一组线程中的最后一个线程到达之...原创 2012-12-16 16:17:10 · 71 阅读 · 0 评论 -
CountDownLatch的使用
CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。主要方法 public CountDownLatch(int count); public void countDown(); public void await() throws InterruptedException 构造方法参数指定了计数的次数co...原创 2012-12-16 16:26:54 · 76 阅读 · 0 评论 -
Exchanger使用
JDK1.5中有一个Exchanger类,可以用来完成线程间的数据交换。 类java.util.concurrent.Exchanger提供了一个同步点,在这个同步点,一对线程可以交换数据。每个线程通过exchange()方法的入口提供数据给他的伙伴线程,并接收他的伙伴线程提供的数据,并返回。当两个线程通过Exchanger交换了对象,这个交换对于两个线程来说都是安全的。 以下是例子...原创 2012-12-16 16:34:24 · 498 阅读 · 0 评论 -
java 线程池
1. 引言 合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了...原创 2012-12-17 13:41:50 · 61 阅读 · 0 评论 -
消费者生产者模式三种模式实现
生产者和消费中模式在多线程中时经典中,我们下面通过这种方式来看看阻塞队列,锁机制以及最原始的方式的区别与联系:[b][size=medium]对于通过阻塞队列:[/size][/b][code="java"] /** * */package com.chihonglu.ConsumerProducer.blockingQueue;import ja...原创 2012-12-17 16:52:19 · 112 阅读 · 0 评论 -
阻塞队列
使用BlockingQueue的关键技术点如下: 1.BlockingQueue定义的常用方法如下: 1)add(anObject):把anObject加到BlockingQueue里,即如果BlockingQueue可以容纳,则返回true,否则招聘异常 2)offer(anObject):表示如果可能的话,将anObject加到Bl...原创 2012-12-17 16:53:53 · 64 阅读 · 0 评论 -
java读写锁
java5 过后有lock锁的读写机制[code="java"]package cn.com.scl.cache import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.lo...原创 2012-12-17 17:07:52 · 83 阅读 · 0 评论 -
java 多线程机制
程序、进程和线程: 程序是一段静态的代码,它是应用程序执行的蓝本。进程是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完整过程,这个过程也是进程本身从产生、发展至消亡的过程。线程是比进程更小的单位,一个进程执行过程中可以产生多个线程,每个线程有自身的产生、存在和消亡的过程,也是一个动态的概念。每个进程都有一段专用的内存区域,而线程间可以共享相同的内存区域(包括代码和数据),并...原创 2012-12-17 17:20:12 · 146 阅读 · 0 评论