随笔分类 -  java多线程

摘要:深入理解java虚拟机: 1、java内存模型 java虚拟机规范中试图定义一种Java内存模型。Java Memory Model(JMM) 1.1 主内存与工作内存 java内存模型规定所有的变量都存储在主内存中(Main Memory)中。 每个线程还有自己的工作内存(working Memo 阅读全文
posted @ 2018-03-15 21:15 战斗的小白 阅读(186) 评论(0) 推荐(0)
摘要:两种线程的调度模式: 抢占式调度: 抢占式调度指的是每条线程执行的时间、线程的切换都由系统控制,系统控制指的是在系统某种运行机制下,可能每条线程都分同样的执行时间片,也可能是某些线程执行的时间片较长,甚至某些线程得不到执行的时间片。在这种机制下,一个线程的堵塞不会导致整个进程堵塞。 协同式调度: 协 阅读全文
posted @ 2018-03-15 18:05 战斗的小白 阅读(3914) 评论(0) 推荐(0)
摘要:线程池优点: 1、降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 2、提高响应速度。当任务到达时,线程可以不需要等到线程创建就能立刻执行。 3、提高线程的可管理性。线程是稀缺资源,如果无限的创造,不仅会消耗系统资源,还会降低系统的稳定性。使用线程池进行统一的分配,调优和监控。 阅读全文
posted @ 2018-03-15 17:37 战斗的小白 阅读(276) 评论(0) 推荐(0)
摘要:并发编程的目的是为了让程序运行的更快,但并不是启动更多的线程就能让程序最大限度地并发执行。 在进行并发编程时,会面对很多问题:上下文的切换、死锁、受限硬件和软件的资源限制问题。 什么事上下文的切换 即使是单核的cpu也支持多线程执行代码,CPU通过给每个线程分配CPU资源来实现这个机制。时间片是CP 阅读全文
posted @ 2018-03-15 11:09 战斗的小白 阅读(696) 评论(0) 推荐(0)
摘要:1、Callable<V>接口 Runnable接口 Callable runnable接口 Callable接口 都可以被ThreadPoolExecutor或ScheduledThreadPoolExecutor执行,两者实现了ExcutorService接口 ExecutorService接口 阅读全文
posted @ 2018-03-14 20:57 战斗的小白 阅读(207) 评论(0) 推荐(0)
摘要:参考:http://blog.csdn.net/javazejian/article/details/50896505 1、Callable<V>接口 Runnable接口 Callable runnable接口 Callable接口 都可以被ThreadPoolExecutor或Scheduled 阅读全文
posted @ 2018-03-14 20:57 战斗的小白 阅读(127) 评论(0) 推荐(0)
摘要:读写锁接口:ReadWriteLock,它的具体实现类为:ReentrantReadWriteLock 使用场景: 对于一个资源,读读能共存,读写不能共存,写写不能共存。 锁降级:从写锁变成读锁; 锁升级:从读锁变成写锁。 ReentrantReadWriteLock不支持锁升级,支持锁降级 会死锁 阅读全文
posted @ 2018-03-14 20:05 战斗的小白 阅读(357) 评论(0) 推荐(0)
摘要:参考:https://www.jianshu.com/p/377bb840802f https://www.cnblogs.com/dreamroute/p/5034726.html ThreadLocal是什么 线程局部变量 使用场景:变量是同一个,但是每个线程都使用同一个初始值,也就是使用同一个 阅读全文
posted @ 2018-03-14 17:29 战斗的小白 阅读(181) 评论(0) 推荐(0)
摘要:参考:https://www.jianshu.com/p/4358b1466ec9 前言: 先来想象一个场景:手把手的进行锁获取和释放,先获得锁A,然后再获取锁B,当获取锁B后释放锁A同时获取锁C,当锁C获取后,再释放锁B同时获取锁D,以此类推,这种场景下,synchronized关键字就不那么容易 阅读全文
posted @ 2018-03-14 14:13 战斗的小白 阅读(169) 评论(0) 推荐(0)
摘要:参照:http://ifeve.com/introduce-abstractqueuedsynchronizer/ 前言: 在java.util.concurrent.locks包中有很多Lock的实现类,常用的有ReentrantLock、ReadWriteLock(实现类ReentrantRea 阅读全文
posted @ 2018-03-14 10:24 战斗的小白 阅读(735) 评论(0) 推荐(0)
摘要:参照: http://mp.weixin.qq.com/s/dzNq50zBQ4iDrOAhM4a70A http://mp.weixin.qq.com/s/1yWSfdz0j-PprGkDgOomhQ JDK1.7 多线程下死循环 源代码: resize步骤: 1.扩容 创建一个新的Entry空数 阅读全文
posted @ 2018-03-07 10:45 战斗的小白 阅读(1296) 评论(0) 推荐(0)