随笔分类 -  【并发】Java并发编程

摘要:1、简述锁时用来控制多个线程访问共享资源的方式,一般情况下,一个锁能够防止多个线程同时访问共享资源。但是有些锁可以允许多个线程并发的访问共享资源,比如读写锁。在Java 5.0之前,在协调对共享对象的访问时可以使用的机制只有 synchronized 和 v... 阅读全文
posted @ 2018-09-16 17:25 IT码客 阅读(301) 评论(0) 推荐(0)
摘要:1、简述线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能称为一个整体。 使线程之间进行通信后,在大大提高CPU利用率的同时还会使开发人员对各个线程任务在处理的过程中进行有效的把控。2、如何实现线程间通信2.1、等待(wait)/通知机制(no... 阅读全文
posted @ 2018-09-09 16:23 IT码客 阅读(1585) 评论(0) 推荐(0)
摘要:简述volatile 是轻量级的synchronized,在多线程开发中保证了共享变量的可见性。可见性就是当一个线程修改一个共享变量时,另一个线程可以读到修改的值。如果volatile变量使用恰当,它比synchronized的使用成本更低,因为它不会引起线... 阅读全文
posted @ 2018-09-09 14:46 IT码客 阅读(300) 评论(0) 推荐(0)
摘要:简述Java中每个对象都可以用来实现一个同步的锁,这些锁被称为内置锁(Intrinsic Lock)或监视器锁(Monitor Lock)。具体表现形式如下:1、普通同步方法,锁的是当前实例对象2、静态同步方法,锁的是当前Class对象3、对于同步代码块,锁... 阅读全文
posted @ 2018-09-02 23:04 IT码客 阅读(848) 评论(0) 推荐(0)
摘要:简述在操作系统中,线程是可以划分优先级的,优先级较高的线程,得到CPU优先执行的几率就较高一些。设置线程的优先级,有助于帮助线程规划期选择下一个哪一个线程优先执行,但是线程优先级高不代表一定会优先执行,这在下文会说明原因如何设置线程优先级设置线程优先级的方法... 阅读全文
posted @ 2018-09-02 17:17 IT码客 阅读(242) 评论(0) 推荐(0)
摘要:如何构造线程在运行线程之前需要先构造线程对象,线程对象的构造需要指定线程所需要的属性,比如:所属线程组、线程优先级、是否为Daemon线程等信息。下面我们看一下,java.lang.Thread中对线程初始化的方法:private void init(Thr... 阅读全文
posted @ 2018-09-02 17:16 IT码客 阅读(5180) 评论(0) 推荐(0)
摘要:在Java并发包中有一些并发框架也使用了自旋CAS的方式实现了原子操作,比如:LinkedTransferQueue类的Xfer方法。CAS虽然很高效的解决了原子操作,但是CAS仍然存在三大问题:ABA问题、循环时间长开销大、只能保证一个共享变量的原子操作1... 阅读全文
posted @ 2018-04-02 21:58 IT码客 阅读(1430) 评论(0) 推荐(0)
摘要:ThreadPoolExecutor源码分析简介java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。本文就从源码着手开始一步步了解ThreadPo... 阅读全文
posted @ 2018-03-16 15:22 IT码客 阅读(363) 评论(0) 推荐(0)
摘要:1. CountDownlatch(计数器)描述:一个同步工具类,允许一个或多个线程等待其它线程完成操作类图通过指定的count值进行初始化,调用await方法的线程将被阻塞,直到count值通过countDown()方法减小到0,所有等待的线程才会被释放继... 阅读全文
posted @ 2018-03-16 14:40 IT码客 阅读(965) 评论(0) 推荐(0)