
并发编程
文章平均质量分 68
goto rust
这个作者很懒,什么都没留下…
展开
-
Java并发编程读书笔记(二)之原子操作
并发编程中,需要将一个可能发生线程安全问题的操作变为一个原子操作。方法很多,比如CAS、synchronized、lock。这里说明一点,多个线程安全的原子操作放到一起并不一定是线程安全的。比如原创 2015-04-23 15:30:29 · 691 阅读 · 0 评论 -
Java并发编程读书笔记(三)之发布与溢出
发布:使对象能够在除当前作用域之外的地方使用。溢出:指某个对象不应该发布却被发布了。Examle:public class PublishAndEscape { //发布status public static String status = "status"; private Object[] object; // 内部的可变状态溢出,导致外部可以直接访问并修改object原创 2015-04-24 15:03:49 · 1410 阅读 · 0 评论 -
ArrayList线程不安全分析
众所周知,ArrayList作为Collection中极重要的一员,是非线程安全的。那么它的非线程安全体现在哪些地方呢?下面我就具体分析这个问题。不对之处,欢迎大家指正。在讨论这个问题之前,先说下线程安全的三个重要特性:操作原子性、状态一致、内存可见性。操作原子性:该操作只能一口气做完,中间不能停顿。状态一致性:共享对象的状态要一致。内存可见性:每个线程都有自己的工作空间,它使用某...原创 2015-06-01 10:02:48 · 3011 阅读 · 1 评论 -
Object对象详解(四)之wait与notify/notifyAll
在Java1.5之前,进程之间协作只能通过synchronized+wait/notify,1.5后加入了J.U.C,虽然多了很多选择,但是还是有必要学习一下。原创 2015-09-02 17:14:51 · 582 阅读 · 0 评论 -
Java线程池小结
线程池参数 参数名 作用 corePoolSize 核心线程数 maximumPoolSize 最大线程数 keepAliveTime 线程池中超过corePoolSize数目的空闲线程最大存活时间;当设置allowCoreThreadTimeOut=true会使得核心线程也超时被释放 TimeUnit keepAliveTime时...原创 2018-07-02 11:09:25 · 205 阅读 · 0 评论 -
21个最常见Java并发编程面试题
Thread 的run 与start方法有什么区别5个线程同时访问5个共享资源,如何避免死锁哪种使用多线程的方式更好呢?继承Thread or 实现 Runnable“Busy Spinning”是什么?你为什么使用它CountDownLatch和CyclicBarrier有什么区别wait和sleep有什么区别实现一个生产者、消费者模型为什么ConcurrentHashMap比H...原创 2019-09-12 21:58:17 · 325 阅读 · 0 评论