java多线程
文章平均质量分 56
匆忙拥挤repeat
倦鸟就此散 余花怎不乱 物是人已非 落寞
红尘难看破 美梦成真否 镜花水月尔 迷惘
展开
-
线程锁Lock
Lock 相当于 当前对象的 Synchronized import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/* * Lock lock = new ReentrantLock(); * lock.lock(); lock.unLock();原创 2011-11-02 15:39:00 · 1013 阅读 · 0 评论 -
Java Thread类的 yield()、join()
yield:解释它之前,先简述原创 2014-08-16 22:34:30 · 11785 阅读 · 2 评论 -
Java 线程概述: 线程种类、状态,原子性、内存可见性、synchronized、volatile
创建一个线程实例时,JVM会分配两个调用栈,一个用于跟踪java代码间的调用关系,一个用于跟踪native代码间的调用关系后台线程(Daemon Thread)和用户线程(User Thread)。用户线程会阻止JVM的正常停止,即JVM正常停止前进程中的所有用户线程必须先停止完毕,否则JVM无法停止后台线程则不会影响JVM的正常停止设置线程为后台线程,可以调用Thread原创 2016-03-21 21:18:18 · 849 阅读 · 0 评论 -
Java LinkedBlockingQueue 分析
package java.util.concurrentpublic class LinkedBlockingQueue extends AbstractQueue implements BlockingQueue, java.io.Serializable原创 2016-05-31 15:59:46 · 1645 阅读 · 0 评论 -
Java CopyOnWriteArrayList 分析
java.util.concurrent.CopyOnWriteArrayList 是一个线程安全的List。内部维护了一个volatile Object[] elements,volatile修饰,表示即使在多线程环境中对它进行修改,每个线程都会实时拿到最新值add()时,会调用System.arrayCopy(),copy出一个新的array,再赋值给elements。要保证...原创 2016-03-23 11:09:32 · 964 阅读 · 0 评论 -
线程同步:生产者和消费者的问题
synchionized——同步锁。书写方式有两种: 1. 在方法声明的返回值前加。如 public synchronized void put(){} 监视的对象为该方法所在的类,即this2.直接使用同步语句块 如 synchronized(Object o) {} 监视的对原创 2011-08-24 14:38:25 · 969 阅读 · 0 评论 -
Java CyclicBarrier 设置线程等待点
一组线程互相等待,直到到达某个公共屏障点 (common barrier point)后,再继续执行 import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;im原创 2011-11-02 17:26:48 · 1111 阅读 · 0 评论 -
Executors 工具类 创建 的 线程池
---------------------- android培训、java培训、期待与您交流! ---------------------- import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExe原创 2011-11-02 14:18:09 · 1639 阅读 · 0 评论 -
Callable与Future的应用
Callable 返回结果并且可能抛出异常的任务Future 表示异步计算的结果。 import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurrent.ExecutionException;import java.util.co原创 2011-11-02 14:49:23 · 1144 阅读 · 0 评论 -
java5的并发 Collection
1:import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/* * 第一题: * 现有的程序代码模拟产生了16个日志对象, * 并且需要运行16秒才能打印完这些日志, * 请在程序中增加4个线程去调用parseLog()方法来分头打印这原创 2011-11-07 14:43:30 · 984 阅读 · 0 评论 -
BlockingQueue: 阻塞队列 接口
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/* * BlockingQueue * put()—— 队列满后,等待有空间了才能放入,即等 take() * take()—— 队列空后,等待放入了元素才才能取出,即等 put()原创 2011-11-06 12:37:35 · 1060 阅读 · 0 评论 -
Exchanger: 两个线程 间 交换 数据
import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.Exchanger;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executo原创 2011-11-04 16:54:47 · 1302 阅读 · 0 评论 -
线程计数锁:CountDownLatch
计数锁,await()—— 当 计数为0 后,释放等待线程 countDown()—— 计数减1. import java.util.Arrays;import java.util.HashMap;import java.util.Map;import java.util.Set;import java.util.concurrent.Cou原创 2011-11-03 00:19:34 · 1501 阅读 · 0 评论 -
唤醒或等待线程 Condition
Lock lock = new ReentrantLock(); Condition condition = lock.newCondition(); condition.await() 与 object.wait();类似 condition.signal()、signalAll() 与 object.notify()、notifyAll()相似一次只通知一个线程原创 2011-11-02 16:00:55 · 1212 阅读 · 0 评论 -
控制并发访问的线程数 Semaphore 信号灯
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;/* * Semaphore: 控制并发访问的线程数 */public class SemaphoreTest { public s原创 2011-11-02 16:14:30 · 1184 阅读 · 0 评论 -
读写锁 ReentrantReadWriteLock
读写锁:允许多条线程同时读;不能读中有写;不能写中有读;不能写中有写 import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/*原创 2011-11-02 15:48:41 · 913 阅读 · 0 评论 -
Java ThreadPoolExecutor 线程池调度器
可设置的主要参数corePoolSize核心线程数,核心线程会一直存活,即使没有任务需要处理。当线程数小于核心线程数时,即使现有的线程空闲,线程池也会优先创建新线程来处理任务,而不是直接交给现有的线程处理。核心线程在allowCoreThreadTimeout被设置为true时会超时退出,默认情况下不会退出。maxPoolSize当线程数大于或等于核心线程,且任务队列已满时,线程池会创建新的......原创 2017-05-26 17:10:25 · 5639 阅读 · 2 评论