★ Java 并发编程
Java并发基础知识学习
✦昨夜星辰✦
生活就像仰卧起坐,时而卷起,时而躺平。
展开
-
线程不安全类与写法
此篇文章我们来验证一些类是否是线程安全,而且列举一些平时开发中线程不安全的写法,主要如下:StringBuilder 和 StringBufferSimpleDateFormat 和 JodaTimeArrayList,HashSet,HashMap等Collections原创 2019-09-18 23:43:04 · 281 阅读 · 0 评论 -
单例模式之线程安全性讨论
在 23 种设计模式中单例模式是比较常见的,在非多线程的情况下写单例模式,考虑的东西会很少,但是如果将多线程和单例模式结合起来,考虑的事情就变多了,如果使用不当(特别是在生产环境中)就会造成严重的后果。所以如何使单例模式在多线程中是安全的显得尤为重要。原创 2019-09-17 23:05:17 · 366 阅读 · 1 评论 -
线程安全性
当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。原创 2019-09-15 20:45:46 · 146 阅读 · 0 评论 -
synchronized 关键字
synchronized 关键字解决的是多个线程之间访问资源的同步性,用于保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果。原创 2019-09-15 17:33:59 · 226 阅读 · 2 评论 -
JMeter、ApacheBench 等压测工具使用介绍
JMeter、ApacheBench 等主流压测工具使用介绍,模拟并发、高并发请求!原创 2019-09-12 14:35:00 · 618 阅读 · 1 评论 -
并发与高并发
并发更多的是讨论,多个线程操作相同的资源,保证线程安全,合理使用资源。原创 2019-09-09 11:32:02 · 714 阅读 · 0 评论 -
线程八大核心基础
实现多线程的方法到底有1种还是2种还是4种?怎样才是正确的线程启动方式?如何正确停止线程?(一)如何正确停止线程?(二)线程的6个状态(生命周期)Thread和Object类中的重要方法详解线程的各个属性未捕获异常如何处理?双刃剑:多线程会导致的问题原创 2020-03-03 10:04:06 · 745 阅读 · 0 评论 -
实现多线程的方法是 1 种还是 2 种还是 4 种?
准确的讲,创建线程只有一种方式那就是构造Thread类,而实现线程的执行单元有两种方式,方法一:实现Runnable接口的run方法,并把Runnable实例传给Thread类,方法二:重写Thread的run方法(继承Thread类)原创 2020-03-03 10:04:29 · 802 阅读 · 1 评论 -
怎样才是正确的线程启动方式?
启动线程的正确和错误方式,runnable.run() 方法是由main线程执行的,而要子线程执行就一定要先调用 start() 启动新线程去执行。原创 2020-03-03 10:04:41 · 478 阅读 · 1 评论 -
如何正确停止线程之 interrupt 的使用
在 Java 中,最好的停止线程的方式是使用中断 interrupt,但是这仅仅是会通知到被终止的线程“你该停止运行了”,被终止的线程自身拥有决定权(决定是否、以及何时停止),这依赖于请求停止方和被停止方都遵守一种约定好的编码规范。原创 2020-03-03 10:04:54 · 2039 阅读 · 0 评论 -
如何正确停止线程之错误的停止方法
要正确停止线程,需要请求方、被停止方、子方法被调用方三者相互配合才能完全正确的保证线程安全的停止原创 2020-03-04 17:00:07 · 1021 阅读 · 0 评论 -
线程的 6 个状态(生命周期)
线程的一生:新建 New、可运行 Runnable、已终止 Terminated、被阻塞 Blocked、等待 Waiting、计时等待 Timed Waiting原创 2020-03-03 10:05:19 · 2161 阅读 · 1 评论 -
Thread 和 Object 类中的重要方法详解
wait、notify、notifyAll、sleep、join、yield、start、run、stop、suspend、resume 等方法介绍原创 2020-03-03 10:05:44 · 706 阅读 · 1 评论 -
Thread 和 Object 类中的重要方法之面试问题总结
1.手写生产者消费者设计模式2.用程序实现两个线程交替打印 0~100 的奇偶数3.为什么 wait() 需要在同步代码块内使用,而 sleep() 不需要...原创 2020-03-03 10:06:04 · 434 阅读 · 0 评论 -
wait/notify 实现生产者消费者模式
在线程的世界中,生产者就是生产一些数据,而消费者就是把这些数据消费使用,但是他们的速度很可能就是不一致的,有的时候是生产者快有的时候生产者慢而消费者快,就需要有个设计模式去解决这个问题,而不至于一个过快一个过慢,于是就诞生了生产者消费者模式原创 2020-03-03 10:05:55 · 892 阅读 · 1 评论 -
实现两个线程交替打印 0~100 的奇偶数
有两个线程,一个线程只打印奇数,一个线程只打印偶数,而且要按照顺序打印,就是说要按照这样的方式打印:偶线程:0奇线程:1偶线程:2奇线程:3...原创 2020-02-13 19:52:10 · 1706 阅读 · 1 评论 -
Thread 线程的各个属性
线程Id、线程名字、线程优先级、守护线程 ...原创 2020-03-03 10:06:14 · 864 阅读 · 0 评论 -
线程的未捕获异常如何处理?
为什么需要UncaughtExceptionHandler?主线程可以轻松发现异常,子线程却不行子线程异常无法用传统方法捕获不能直接捕获的后果、提高健壮性原创 2020-03-03 10:06:23 · 2282 阅读 · 0 评论 -
双刃剑:多线程会导致的问题
当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行仼何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。原创 2020-03-03 10:06:36 · 1008 阅读 · 1 评论 -
单例模式的 9 种写法
在 23 种设计模式中单例模式是比较常见的,在非多线程的情况下写单例模式,考虑的东西会很少,但是如果将多线程和单例模式结合起来,考虑的事情就变多了,如果使用不当就会造成严重的后果。所以如何使单例模式在多线程中是安全的显得尤为重要。原创 2020-03-03 10:06:47 · 2161 阅读 · 4 评论 -
Java 内存模型
Java 虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。原创 2020-03-03 10:07:07 · 392 阅读 · 0 评论 -
什么是死锁?
什么是死锁?死锁的4个必要条件?如何定位死锁?修复死锁的策略?实际工程中如何避免死锁?什么是活锁?什么叫饥饿?原创 2020-03-03 10:07:17 · 679 阅读 · 0 评论 -
死锁——银行转账问题
在【死锁】这一篇文章中,我们学习了死锁相关的理论知识,本篇文章来看看死锁案例——银行转账问题,以银行转账问题来讨论死锁、死锁的定位、死锁的修复。原创 2020-03-03 10:07:31 · 1140 阅读 · 0 评论 -
死锁——哲学家就餐问题
有五位哲学家,面前都有一个盘子,盘子左边和右边都有一根筷子,他们在吃面之前需要先拿起左边的筷子再拿起右边的筷子,有了一双筷子就可以吃面了。原创 2020-03-03 10:07:41 · 2561 阅读 · 0 评论 -
活锁——牛郎织女的幸福生活
从前,有一对非常恩爱的夫妻,他们都有一颗谦让的心,但家境却不是很好,吃了上顿没下顿,于是,当他们有食物的时候,他们会优先考虑对方,如果对方饿的话,就让给对方吃,等对方吃饱了自己才吃,这种美德本身是好的,但是如果一味的谦让,也会发生一些让人啼笑皆非的事儿…原创 2020-03-03 10:07:51 · 850 阅读 · 0 评论 -
Java 线程基础面试大全
1.有多少种实现线程的方法?典型错误答案和正确答案2.实现 Runnable接口和继承 Thread类哪种方式更好?3.个线程两次调用 start0方法会出现什么情况?为什么?...原创 2020-03-03 09:00:01 · 774 阅读 · 0 评论 -
AQS 核心
Java 中的大部分同步类如 Lock、Semaphore、ReentrantLock 等都是基于AbstractQueuedSynchronizer(简称 AQS)实现的。AQS 是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。原创 2020-03-16 23:50:42 · 332 阅读 · 0 评论 -
Java 并发编程总结篇
线程和进程有什么区别?创建线程的方式及实现为什么要使用多线程呢?线程的状态流转(生命周期)sleep() 、join()、yield() 有什么区别?原创 2020-03-16 11:47:15 · 250 阅读 · 0 评论