多线程
福龙楼主
这个作者很懒,什么都没留下…
展开
-
管道流实现两个线程间通信
Java中实现多线程间的通信主要通过两种方式:共享变量和管道流。共享变量一般通过加锁的方式来保证线程的安全性,在之前的多篇博客中已提供了多个例子,这里不赘述。知道在使用锁的过程中,注意锁作用的对象以及锁的作用区域就可以了。原创 2016-12-11 22:38:56 · 2333 阅读 · 0 评论 -
ThreadLocal的用法
Java中除了通过共享变量,还可以通过ThreadLocal来实现多线程访问的问题。按字面理解,ThreadLocal相当于线程的局部变量 。在每个线程中为目标对象创建一个副本,这样自然避免了共享变量参数传递带来的线程安全问题。原创 2016-12-14 22:27:40 · 242 阅读 · 0 评论 -
Collections.synchronizedMap()与ConcurrentHashMap的区别
Collections.synchronizedMap()与ConcurrentHashMap主要区别是:Collections.synchronizedMap()和Hashtable一样,实现上在调用map所有方法时,都对整个map进行同步,而ConcurrentHashMap的实现却更加精细,它对map中的所有桶加了锁。所以,只要要有一个线程访问map,其他线程就无法进入map,而如果一个线程在访问ConcurrentHashMap某个桶时,其他线程,仍然可以对map执行某些操作。这样,Concurre原创 2016-12-07 00:13:14 · 36076 阅读 · 6 评论 -
Java synchronized关键字总结
Java的synchronized关键字,主要用来保证线程安全,即每次运行的结果与单个线程运行的结果一的致,避免执行结果出现二义性。当一个线程获得synchronized修饰代码时,其他线程对该代码访问将被阻塞,同一时间只允许一个线程访问该代码。Java中synchronized关键字用法主要有两种:synchronized成员方法。synchronized修饰代码块。原创 2016-11-20 20:40:19 · 323 阅读 · 0 评论 -
java接口压力测试
根据用户输入的线程数,创建多个线程,每个线程串行的发送n/c个请求(其中n为请求数,m为线程数)。并且实时的反馈,完成的请求数,以及成功接收返回结果的请求数量。原创 2017-05-09 21:23:54 · 13639 阅读 · 1 评论 -
多线程的三种实现
最近写多篇关于多线程的博客,这里做个总结。线程从创建到消亡的过程中,可能会经历五种状态:New:线程刚被创建。 Runnable:线程的start方法被调用后所处的状态,该状态下,线程才有了竞争时间片的可能,即可运行态。 Running:线程正在执行run方法 Dead:执行完run方法,或者被stop Blocked:线程放弃CPU使用权,进入阻塞状态。该状态下,线程可能重新...原创 2016-12-12 00:38:33 · 424 阅读 · 0 评论 -
多线程相关概念整理
一、为什么要使用多线程(并发与并行) 如果仅针对单核CPU,多线程适合于任务执行期间需要等待返回结果的场景。一个任务进入等待后,CPU进入空闲,这时把CPU资源分配给其他线程执行。这个多个任务在单CPU上的切换,就是并发。CPU在线程上切换的时间一般小于任务等待的时间,所以多个线程并发执行会提高程序执行效率。而对于多核CPU或者多个CPU的,CPU除了并发外,多个CPU上不同线程还能同时的原创 2017-11-07 11:41:32 · 337 阅读 · 0 评论 -
synchronized关键字、ReentrantLock与原子类比较
我们先比较ReentrantLock与synchronized的用法1、ReentrantLock拥有synchronized相同的并发性和内存语义,此外还多了锁投票,定时锁等候和中断等候。线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定。使用synchronized时,如果A不释放,B将一直等待下去,无法中断。使用ReentrantLock时,如果A不释原创 2016-11-28 20:59:03 · 920 阅读 · 0 评论 -
偏向锁、轻量级锁、重量级锁
Java SE1.6为了减少获得锁和释放锁所带来的性能消耗,引入了“偏向锁”和“轻量级锁”的概念,所以在Java SE1.6里锁一共有四种状态:无锁状态,偏向锁状态,轻量级锁状态和重量级锁状态,它会随着竞争情况逐渐升级。锁可以升级但不能降级,这种策略目的是为了提高获得锁和释放锁的效率。偏向锁 Hotspot的作者经过以往的研究发现大多数情况下锁不仅不存在多线程竞争,而且总原创 2017-10-26 16:44:13 · 375 阅读 · 0 评论