摘要:1、什么是线程安全性 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 在线程安全类中封装了必要的同步机制,因此客户端无需进一步采取同步错失。 2、原子性 要编写线程 阅读全文
java线程安全之并发Queue
2019-01-06 23:05 by GarfieldEr007, 651 阅读, 0 推荐, 收藏, 编辑
摘要:关闭 关闭 原 java线程安全之并发Queue(十三) 2017年11月19日 23:40:23 小彬彬~ 阅读数:12092更多 所属专栏: 线程安全 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33524158/article/det 阅读全文
一篇文章看懂Java并发和线程安全
2019-01-06 23:04 by GarfieldEr007, 390 阅读, 0 推荐, 收藏, 编辑
摘要:一、前言 长久以来,一直想剖析一下Java线程安全的本质,但是苦于有些微观的点想不明白,便搁置了下来,前段时间慢慢想明白了,便把所有的点串联起来,趁着思路清晰,整理成这样一篇文章。 二、导读 1、为什么有多线程? 2、线程安全描述的本质问题是什么? 3、Java内存模型(JMM)数据可见性问题、指令 阅读全文
java并发之如何解决线程安全问题
2019-01-06 23:03 by GarfieldEr007, 396 阅读, 0 推荐, 收藏, 编辑
摘要:并发(concurrency)一个并不陌生的词,简单来说,就是cpu在同一时刻执行多个任务。 而Java并发则由多线程实现的。 在jvm的世界里,线程就像不相干的平行空间,串行在虚拟机中。(当然这是比较笼统的说法,线程之间是可以交互的,他们也不一定是串行。) 多线程的存在就是压榨cpu,提高程序性能 阅读全文
Java并发/多线程系列——线程安全篇(1)
2019-01-06 23:01 by GarfieldEr007, 276 阅读, 0 推荐, 收藏, 编辑
摘要:创建和启动Java线程 Java线程是个对象,和其他任何的Java对象一样。线程是类的实例java.lang.Thread,或该类的子类的实例。除了对象之外,java线程还可以执行代码。 创建和启动线程 在Java中创建一个线程是这样完成的: 要启动Java线程,您将调用其start()方法,如下所 阅读全文
当面试官问线程池时,你应该知道些什么?
2019-01-06 22:56 by GarfieldEr007, 440 阅读, 0 推荐, 收藏, 编辑
摘要:Java面试中,线程池也算是一个高频的问题,其实就JDK源码来看线程池这一块的实现代码应该算是写的清晰易懂的,通过这篇文章,我们就来盘点一下线程池的知识点。 本文基于JDK1.8源码进行分析 首先看下线程池构造函数: public ThreadPoolExecutor(int corePoolSiz 阅读全文
java 线程池 使用实例
2019-01-06 22:53 by GarfieldEr007, 10011 阅读, 1 推荐, 收藏, 编辑
摘要:在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务 阅读全文
多线程-Executors和Executor,线程池
2019-01-06 22:49 by GarfieldEr007, 334 阅读, 0 推荐, 收藏, 编辑
摘要:jdk1.5之前,所有的线程都是需要自己手动创建的,由jvm销毁,当请求过多的时候,频繁的创建和销毁线程是非常浪费资源的。jdk1.5为此做了优化,提供了 java.util.concurrent 包,该包下有个 Executor 接口,官方解释为: 执行已提交的 Runnable 任务的对象。此接 阅读全文
从阿里Java开发手册学习线程池的正确创建方法
2019-01-06 22:48 by GarfieldEr007, 2799 阅读, 0 推荐, 收藏, 编辑
摘要:前言 最近看阿里的 Java开发手册,上面有线程池的一个建议: 【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 结合最近面试的经历,发现这条建议还是十分有用的,因为自 阅读全文
什么时候使用CountDownLatch
2019-01-05 19:16 by GarfieldEr007, 271 阅读, 0 推荐, 收藏, 编辑
摘要:本文由 ImportNew - 张涛 翻译自 howtodoinjava。欢迎加入翻译小组。转载请见文末要求。 正如每个Java文档所描述的那样,CountDownLatch是一个同步工具类,它允许一个或多个线程一直等待,直到其他线程的操作执行完后再执行。在Java并发中,countdownlatc 阅读全文