摘要:
操作共享数据,线程不安全代码: 三个线程同时执行上面的任务: 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,它创建单个工作线程来执行任务,如果这个线程异常结束,会 阅读全文