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