
java并发编程
天下无我这般幸运人
这个作者很懒,什么都没留下…
展开
-
java多线程总结
1.创建线程的四种方式https://blog.youkuaiyun.com/weixin_42582008/article/details/1006777862.线程的状态及影响线程状态的一些方法1)5种状态或6种状态2)终止线程的3个方法3)线程中断4)等待(wait)和通知(notify)及睡眠(sleep)5) 挂起(suspend)和继续执行(resume)方法6) ...原创 2020-04-15 16:20:45 · 188 阅读 · 0 评论 -
与并发有关的设计模式
主要参考《实战java高并发程序设计》一、单例设计模式单例设计模式是一种对象创建模式,用于产生一个对象得具体实例,它可以确保系统中一个类只产生一个实例。这样做得好处:1.对于频繁使用的对象,可以省略new操作花费的时间。2. 由于new操作次数的减少,因而对系统内存的使用频率也会降低,这将减轻GC压力,缩短GC停顿时间。单例实际模式与并发关系不大,但在多线程环境中会用到单例设计模...原创 2019-10-06 11:23:44 · 264 阅读 · 0 评论 -
锁的优化及注意事项
多线程存在的效率问题:各线程的元数据,上下文切换,线程调度等1.有助于提高锁性能的几点建议1.1 减少锁持有的时间只在需要的代码段加锁,不要将不必要的内容加到同步代码方法或同步代码块中。1.2 减小锁粒度和1.1的方法的差不多,缩小锁定对象的范围,从而降低锁冲突的可能性。1.3 用读写分离锁来替换独占锁1.4 锁分离与读写锁的思路类似,对于一个对象,不使用独占锁,而...原创 2019-10-02 20:12:39 · 197 阅读 · 0 评论 -
Java中的原子类
主要参考《实战java高并发程序设计》、《并发编程的艺术》,感觉学习这13个原子类,还是要自己动手写一些,试一试,才能理解它们的用法和不同之处。1.原子类的引入以及AtomicInteger首先看一个例子:public class AtomicNoIntegerDemo { static int i = 0; public static class AddThread...原创 2019-09-30 17:19:07 · 172 阅读 · 0 评论 -
java并发容器
看《java并发编程的艺术》,发现这一章中很多内容是基于java7甚至更早之前的jdk版本,导致一些内容已经过时了,所以这里记录一下新的java并发容器的内容,内容主要来自《java并发编程的艺术》,《实战java高并发程序设计》。jdk提供的线程安全的并发容器大部分在java.util.concurrent包中,下面是一些常用的类,java.util中的Vector也是线程安全的,但是效率较...原创 2019-09-28 11:05:38 · 2030 阅读 · 0 评论 -
多线程的概念和一些问题总结
1.进程和线程间的区别:进程是执行着的应用程序,而线程是进程内部的一个执行序列。一个进程可以有多个线程。线程又叫做轻量级进程。线程与进程的区别归纳:a.地址空间和其它资源:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。b.通信:进程间通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。c...原创 2019-09-17 20:55:56 · 143 阅读 · 0 评论 -
线程的状态及影响线程状态的一些方法
一、线程的状态图片来源:牛客网https://www.nowcoder.com/ta/review-java/review?tpId=31&tqId=21081&query=&asc=true&order=&page=131.新建(new):新创建了一个线程对象。2.可运行(runnable):线程对象创建后,其他线程(比如m...原创 2019-09-11 09:07:34 · 251 阅读 · 0 评论 -
java线程的创建
线程的创建 创建线程对象有4种方式:1.继承Thread类 2.实现Runnable接口3.使用Executor框架来创建线程池4.实现Callable接口。一个新的线程对象是由其parent线程(默认在哪个线程中创建线程对象,哪个线程就是这个新线程的parent线程,如在main函数中创建线程对象,则main线程就是新线程的parent线程)来进行空间分配的,child线程继承了par...原创 2019-09-11 09:06:37 · 135 阅读 · 0 评论