随笔分类 - Thread
摘要:线程安全问题都是由全局变量及静态变量引起的。 若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的; 若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。 1) 常量始终是线程安全的,因为只存在读操作。 2)每次调用方法前都新建一个实例是
阅读全文
摘要:Java并发编程的4个同步辅助类(CountDownLatch、CyclicBarrier、Semphore、Phaser) @https://www.cnblogs.com/lizhangyong/p/8906774.html
阅读全文
摘要:概念: 多线程在并发环境中的正常执行顺序是随机无序的,并不能按照期盼的结果输出。 因为启动一个线程时,线程并不会立即执行,而是等待CPU的资源调度,CPU能调度哪个线程,是通过多种复杂的算法计算而来。 (一)Thread的join()方法来解决这个问题 一般在多线程编程时,需要控制线程的先后执行顺序
阅读全文
摘要:AtomicReference介绍 AtomicReference是作用是对"对象"进行原子操作。 AtomicReference源码分析(基于JDK1.7.0_40) 在JDK1.7.0_40中AtomicReference.java的源码如下: [java] view plain copy pu
阅读全文
摘要:简介: Future接口是Java多线程Future模式的实现,可以来进行异步计算。 可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,也可以使用cancel方法停止任务的执行。 简单测试 - 主题 : Future模式可以理解成:我有一个任务,提交给了F
阅读全文
摘要:介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。 1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗? Java 1 2 3 4 5 6 7 new Thread(new Runnable
阅读全文
摘要:对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。 sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。 在调用sleep()方法的过程中,线程不会
阅读全文