随笔分类 -  Java-多线程/高并发

摘要:synchoronized是JVM的内置锁,而lock是Java代码实现的。lock是sync对的扩展,完全可以替代后者。lock可以重入,允许同一个线程连续多次获得同一把锁。其次,lock独有的功能有: 1、可以响应中断,sync要么获得锁执行,要么保持等待。而重入锁可以响应中断,使得线程在迟迟得 阅读全文
posted @ 2019-04-06 20:49 Roni_i 阅读(1596) 评论(0) 推荐(0) 编辑
摘要:引言:在给一个系统定位的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(headdump/hprof文件)等。经常使用适当的虚拟机监控和分析工具可以加快我们分析数 阅读全文
posted @ 2019-03-08 19:12 Roni_i 阅读(247) 评论(0) 推荐(0) 编辑
摘要:* 场景 * 有N张火车票,每张票都有一个编号 * 同时有10个窗口对外售票 * 请写一个模拟程序 * 分析下面的程序可能会产生哪些问题? * 重复销售?超量销售? Solution1:使用线程不安全的集合而且不上锁 报错: ①程序逻辑的线程不安全:有可能多个线程涌入while循环是造成并发问题的根 阅读全文
posted @ 2019-03-03 11:09 Roni_i 阅读(460) 评论(0) 推荐(0) 编辑
摘要:import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class Solution { private int start = 1; /** * 对flag的写入虽然加锁保证了线程安全,但由于读取时不是volatile所以... 阅读全文
posted @ 2019-02-22 17:10 Roni_i 阅读(636) 评论(0) 推荐(0) 编辑
摘要:创建多线程 【Thread class】1.继承Thread类,重写run() 【Runnable接口】2.实现Runnable接口,重写run() 【*Callable接口】3.实现Callable接口——高级并发编程JUC 根据面向对象思想,少用继承,多用实现,因为Java有单继承的局限性:继承 阅读全文
posted @ 2018-09-30 22:38 Roni_i 阅读(173) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示