线程池
实现Runnable接口、继承Thread类 创建线程方式
Executors 创建线程池工具类
newCachedThreadPool 缓存线程池
newFixedThreadPool 固定线程大小线程池
newSingleThreadExecutor 单线程线程池
newScheduledThreadPool 定时调度线程池
ThreadPoolExecutor 创建线程池类,参数如下
corePoolSize 核心线程数
maximumPoolSize 最大线程数
keepAliveTime 空闲时间
unit 空间时间单位
workQueue 任务队列
threadFactory 线程工厂
handler 线程拒绝策略(4)
AbortPolicy(异常终止,会抛异常,默认策略)
DiscardPolicy(丢弃新任务策略)
DiscardOldestPolicy(丢弃旧任务策略)
CallerRunsPolicy(主线程调用执行)
锁机制
synchronized(代码块、实例方法、静态方法) 同步关键字
volatile(内存可见性、禁止指令重排序) 内存可见性
ReentrantLock 重入锁
AtomicInteger.cas 原子变量
wait、notify、notifyAll 线程的等待、通知机制
并发编程
CountDownLatch(N) countDown()、await() 门闩
N减为0后,释放await()
等待其他多个任务执行完成后在执行此任务
CyclicBarrier(N, r) await() 回环栅栏(可重用)
await调用N次后执行r方法后释放await()
所有任务都达到某个点后一起执行任务
Semaphore(N) acquire()、release() 信号量
对N个资源限制访问,看谁能获取到
IO流
InputStream、OutputStream 字节流基类
Reader、Writer 字符流基类
FileInputStream、FileOutputStream 处理字节文件
FileReader、FileWriter 处理字符文件
ByteArrayInputStream、ByteArrayOutputStream 处理字节数组
CharArrayReader、CharArrayWriter 处理字符数组
BufferedInputStream、BufferedOutputStream 字节缓存流
BufferedReader、BufferedWriter 字符缓存流