并发编程
mechanic-heaven
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java多线程---线程的取消和关闭
目录取消标志中断中断机制中断机制的正确理解如何响应中断总结启动一个线程是很容易的,无论是继承Thread类或者实现Runnable方法。大多数时候我们都是希望它能正常运行直到结束,或者自行停止。然而有时候我们希望能够提前结束线程,这个可能是用户取消了某个操作,或者应用程序需要快速关闭。Java语言本身没有提供任何机制来安全的终结某个线程。但是提供了中断(Interruption),这是一种协作...原创 2020-03-16 21:12:26 · 1573 阅读 · 0 评论 -
Java并发之锁优化
引子我们在java开发中常可以听到各种各样的锁,乐观锁+悲观锁、共享锁+独占锁、公平锁+非公平锁、读写锁、可重入锁、分段锁…那么为什么会有这么多的锁的类型嘞?其实java对锁的分类并没有一个非常严格的限制,我们常见的分类一般都是从锁的特性、锁的设计思想、锁的状态等不同角度来整理的。比如ReentrantLock既是独占锁(从锁的状态来说,阻塞),也是可重入锁(锁特性,同一个同步代码块是可重入的...原创 2020-03-13 21:29:56 · 331 阅读 · 0 评论 -
Java中的线程安全
什么是线程安全定义:当多个线程访问一个对象时,如果不用考虑这些这些线程在运行时环境下的调度和交替执行,而不用进行额外的同步 ,或者在调用方面进行其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。这个定义看起来很严格,因为它默认一个类已经封装了所有必要的正确性保障手段(如互斥同步等),让调用者不需要担心线程安全问题,更无须自己采用任何措施来保证多线程的正确调用。...原创 2020-03-08 14:55:10 · 307 阅读 · 0 评论 -
JUC---Executor框架
前言我们知道创建线程的方式有4种1、继承Thread类,重写run方法2、实现Runable接口,覆写run方法(推荐)原因:实现Runable接口避免多继承局限实现Runable接口更好的体现了共享的概念3、实现Callable接口,可以有返回值,可以抛出异常鉴于Callable平时用的可能比较少,举个简单的栗子public class CallableTest imple...原创 2020-02-29 21:32:58 · 292 阅读 · 0 评论 -
进程与线程的区别
进程和线程的比较1、进程是资源分配最小单位,线程是系统调度的最小单位;2、进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间;线程没有独立的地址空间,它使用相同的地址空间共享数据;3、多进程程序更健壮,一个进程死掉不会对另一个进程造成影响(源于有独立的地址空间);一个线程死掉,整个进程就死掉了(因为共享地址空间);4、CPU切换一个线程比切换进程花费小;5、创建一个线程比...原创 2020-02-28 15:26:55 · 225 阅读 · 0 评论 -
JUC----Lock框架
JUC指java中并发编程常用的包,即java.util.concurrent。比如常见的原子类,lock框架,线程池,阻塞队列等,都在这个包内。有关于JUC的其他内容我会在后续的文章中阐述,这篇文章的主题是其中的lock框架,也是我们经常用到的并发安全框架。(写的不对的地方请大家多多指教)为什么出现Lock框架已经有了synchronized为什么还要有Lock的出现?1、首先性能方面早已...原创 2020-02-27 14:57:29 · 313 阅读 · 0 评论
分享