随笔分类 - Java多线程
摘要:并发与并行 并发 一个或多个处理器执行更多的任务(通过划分时间片来执行更多的任务),从 上实现同时运行: 如,N个并发请求在一个两核CPU上: 并行 N个处理器分别同时执行N个任务,从 上实现同时运行: 线程互斥 阻塞地加锁,通过ReentrantLock.lock()阻塞地加锁 阻塞地加锁的意义,
阅读全文
摘要:读写锁 图解读锁、写锁的持有和堵塞情况,虚线为读锁、实线为写锁,绿色为不堵塞、红色为堵塞。 Java的ReentrantReadWriteLock的部分逻辑解析 除了数据库有读写锁,Java也有读写锁的线程,这里简单解析ReentrantReadWriteLock,当然,了解ReentrantRea
阅读全文
摘要:>关于本文 本文介绍sleep()、wait()、notify()、notifyAll()方法,主要要理解: > Thread.sleep(long),睡眠指定时间 此方法是让线程睡眠指定时间,不释放锁(睡觉,当然要上锁,这个还用说么)。 此方法我貌似很少用,又似乎很常用。因为,在正式代码中我很少用
阅读全文
摘要:线程中处理异常是个头疼的问题,在异步的代码中,如何将异常捕获。 捕获异常后,将异常反馈给开发者,或最终用户。 一、将异常反馈给开发者,一般来说,在日志中打印异常日志即可; 二、将异常反馈给最终用户,一般来说,在页面上弹出提示框即可。 将异常打印到日志中(UncaughtExceptionHandle
阅读全文
摘要:使用Callable声明可返回值的线程 使用Callable声明可返回值的线程: import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.concurrent.*; public class MyThread
阅读全文
摘要:有时候为了控制并发规模,我们需要对每次启动的线程做个数量上的限制,可以使用Executors.newFixedThreadPool(int)这个方法。 例子 一个线程类,运行中休息几秒为了观察现象更为明显 package com.nicchagil.study.thread.cnblogs.No01
阅读全文