10 2019 档案
摘要:类、接口 文件注释: /** * @Description: TODO * @Author: tangsw * @Date ${DATE} ${TIME} **/ 方法上注释: * * @Description TODO $end$ * @Author tangsw * @Date $date$ $
阅读全文
摘要:线程通信原理图: 资源类: 成员变量赋值类: 打印成员变量值: 启动线程类:
阅读全文
摘要:线程死锁原理图: 锁对象 LockA 锁对象 LockB Runnable接口实现死锁代码 运行死锁代码
阅读全文
摘要:Ctrl+H:查看类的继承关系,例如HashMap的父类是AbstractMap,子类则有一大堆 Ctrl+Alt+B:查看子类方法实现 Alt+F7:查找类或方法在哪被使用 Ctrl+F12:查看类中方法列表
阅读全文
摘要:操作共享数据,线程不安全代码: 三个线程同时执行上面的任务: Thread-0 出售第 1 票Thread-2 出售第 0 票Thread-1 出售第 -1 票 分析: 备注:线程的执行并不是按照顺序执行的,哪个线程抢到CPU执行权限,就执行哪个线程,所以上面的线程名不是按照顺序的。 1.Threa
阅读全文
摘要:线程类,执行的任务: 使用线程池方式执行上面的任务:
阅读全文
摘要:线程实现的三种方式 方式一,继承Thread类: 方式二,实现Runnable接口: 方式三、实现Callable<String>接口: 备注:a.此接口特点是有返回值; b.能抛出异常。
阅读全文
摘要:QM:java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=7301,suspend=n -Xms2048m -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=hea
阅读全文
摘要:手动创建一个线程池: Java通过Executors提供了四种线程池,这四种线程池都是直接或间接配置ThreadPoolExecutor的参数实现的; newFixedThreadPool(int nThreads) 创建一个固定长度的线程池,每当提交一个任务就创建一个线程,直到达到线程池的最大数量
阅读全文
摘要:线程调度方式: 分时调度 平均分配每个线程占用 CPU 的时间。 抢占式调度 优先让优先级高的线程使用 CPU,如果线程的优先级相同,那么会随机选择一个线程执行,Java使用的为抢占式调度。 多线程的内存解析: 多线程执行时,在栈内存中,其实每一个执行线程都有一片自己所属的栈内存空间; 线程的栈内存
阅读全文
摘要:方法一:顺序在线程中创建实例 方法二: 参考:https://blog.csdn.net/eene894777/article/details/74942485 newSingleThreadExecutor()这是一个单线程的Executor,它创建单个工作线程来执行任务,如果这个线程异常结束,会
阅读全文