大家好,我是小黑,一个在互联网苟且偷生的农民工。 在开始讲今天的内容之前,先问一个问题,使用int类型做加减操作是不是线程安全的呢?比如 i++ ,++i,i=i+1这样的操作在并发情况下是否会有问题? 我们通过运行代码来看一下。 以上代码比较简单,通过A,B两个线程同时对Data对象中 ...
一 对象的发布和逸出发布 publish 对象意味着其作用域之外的代码可以访问操作此对象。例如将对象的引用保存到其他代码可以访问的地方,或者在非私有的方法中返回对象的引用,或者将对象的引用传递给其他类的方法。为了保证对象的线程安全性,很多时候我们要避免发布对象,但是有时候我们又需要使用同步来安全的发布某些对象。 逸出即为发布了本不该发布的对象。使用静态变量引用对象是发布对象最直观和最简单的方式。例 ...
2016-03-10 00:27 6 3320 推荐指数:
大家好,我是小黑,一个在互联网苟且偷生的农民工。 在开始讲今天的内容之前,先问一个问题,使用int类型做加减操作是不是线程安全的呢?比如 i++ ,++i,i=i+1这样的操作在并发情况下是否会有问题? 我们通过运行代码来看一下。 以上代码比较简单,通过A,B两个线程同时对Data对象中 ...
大家好,我是小黑,一个在互联网苟且偷生的农民工。 上一期给大家分享了关于Java中线程相关的一些基础知识。在关于线程终止的例子中,第一个方法讲到要想终止一个线程,可以使用标志位的方法,我们再来回顾一 ...
2.7 进程间的数据隔离与通信 2.8 进程对象的其他相关方法 2.9 僵尸进程与孤儿继承 ...
大家好,我是小黑,一个在互联网苟且偷生的农民工。 在JDK1.7中引入了一种新的Fork/Join线程池,它可以将一个大的任务拆分成多个小的任务并行执行并汇总执行结果。 Fork/Join ...
大家好,我是小黑,一个在互联网苟且偷生的农民工。 队列 学过数据结构的同学应该都知道,队列是数据结构中一种特殊的线性表结构,和平时使用的List,Set这些数据结构相比有点特殊,它的特殊之处在于它 ...
大家好,我是小黑,一个在互联网苟且偷生的农民工。 之前的文章中跟大家分享了关于Java中线程的一些概念和基本的使用方法,比如如何在Java中启动一个线程,生产者消费者模式等,以及如果要保证并发情况下多线程共享数据的访问安全,操作的原子性,使用到了synchronized关键字。今天主要和大家聊 ...
大家好,我是小黑,一个在互联网苟且偷生的农民工。 从前上一期【并发编程之:synchronized】 我们学到要保证在并发情况下对于共享资源的安全访问,就需要用到锁。 但是,加锁通常情况下会让运行效率降低,那有什么办法可以彻底避免对共享资源的竞争,同时又可以不影响效率呢?答案就是小黑今天要和 ...
大家好,我是小黑,一个在互联网苟且偷生的农民工。 在之前的文章中,为了保证在并发情况下多线程共享数据的线程安全,我们会使用synchronized关键字来修饰方法或者代码块,以及在生产者消费者模式中同样使用synchronized来保证生产者和消费者对于缓冲区的原子操作 ...