并发编程

并发编程

  • JAVA并发编程-synchronized解析

    JAVA并发编程-synchronized解析synchronized的使用方式修饰实例方法,需要获取到当前对象的实例锁才可以进入修饰静态方法,对当前类进行加锁,在进入同步代码块时需要获得当前类的锁,因为静态方法只属于类而不属于对象修饰代码块,比修饰方法粒度更小,可以指定加锁的对象,获得对应加锁对象

    查看全文
  • JAVA并发编程(八)-线程池的管理

    线程工厂,线程池的介绍

    查看全文
  • JAVA并发编程(七)-线程活性故障

    JAVA并发编程(七)-线程活性故障死锁死锁是线程的一种常见活性故障,如果两个或者更多的线程因相互等待对方而被永久暂停(生命周期状态为:blockd或者waiting),那么我们称这些线程产生了死锁.死锁的典型场景是:线程L1持有锁A,去申请锁B,而线程L2在持有锁B的情况下去申请锁A,并且L1和L

    查看全文
  • JAVA并发编程(三)-CAS和原子变量

    JAVA并发编程(三)-CAS和原子变量CAS介绍CAS(compareandswap)是对一种处理器指令的称呼,java中很多类的实现会借助CAS.CAS可以将read-modify-write和check-and-act操作转换为原子操作,类似于count++这种操作,使用CAS转换为if-th

    查看全文
  • JAVA并发编程(六)-并发集合

    JAVA并发编程(六)-并发集合JDK1.5版本之后引入了一些新的线程安全的集合对象,称为并发集合.非线程安全对象并发集合类共同接口遍历实现方式ArrayListCopyOnWriteArrayListList快照HashSetCopyOnWriteArraySetSet快照LinkedListCo

    查看全文
  • JAVA并发编程(五)-Condition接口

    JAVA并发编程(五)-Condition接口Condition接口介绍Condition接口可以作为wait/notify的替代品来实现等待通知,它为过早解决唤醒问题提供了支持,并且解决了Object.wait(long)无法区分是超时还是正常返回的问题,Condition接口定义的await方法

    查看全文
  • JAVA并发编程(四)-并发计算的基本方法

    JAVA并发编程(四)-并发计算的基本方法挖掘可并发点并发计算首先需要找到程序中哪些点可以并发化,即由串行改为并发的,这些可并发化的处理被称为可并发点。分而治之基于数据的分割实现并发例如从100万个对象中提取出符合条件的数量,如果单独用for循环的话,速度会特别慢,那我们基于数据的分隔,可以将数据按

    查看全文
  • JAVA并发编程(五)-线程间协作

    JAVA并发编程(五)-线程间协作等待和通知:wait/notify在多线程中,可能会出现这种场景,线程的处理条件是基于共享变量的,不符合条件的需要暂停,但是当他符合条件的时候需要使他继续执行剩余代码,这里就需要使用到wait和notify。一个线程因为其执行目标动作所需要的条件未满足而被暂停的过程

    查看全文
  • JAVA并发编程(三)-volatile关键字

    JAVA并发编程(三)-volatile关键字volatile关键字称为轻量级锁,其作用与锁的作用有相同的地方:保证可见性和有序性.所不同的是,在原子性上它仅能保障写volatile变量操作的原子性,但没有锁的排他性.volatile关键字的使用不会引起上下文切换,因此volatile更像是一个轻量

    查看全文
  • JAVA并发编程(三)-锁

    JAVA并发编程(三)-锁JAVA中锁的介绍锁概述线程安全问题都是多个线程并发访问共享变量,共享资源导致的,锁的作用就是讲共享数据的并发访问转换成串行访问,即一个共享数据一次只能被一个线程访问,该线程访问结束后才能被其他线程继续访问.一个线程获得某个锁,我们就称该线程为相应锁的持有线程,一个锁一次只

    查看全文