多线程
浮华′
Java小菜鸡
展开
-
Java-CountDownLatch和Semaphore
文章目录一、CountDownLatch二、Semaphore一、CountDownLatch方法名说明public CountDownLatch(int count)参数传递线程数,表示等待线程数量public void await()让线程等待public void countDown()当前线程执行完毕使用场景:让某一条线程等待其他线程执行完毕之后再执行。import java.util.concurrent.CountDownLatch;pu原创 2020-12-12 20:03:26 · 220 阅读 · 1 评论 -
Java-Hashtable和ConcurrentHashMap
文章目录一、Hashtable二、ConcurrentHashMap1.ConcurrentHashMapJDK7及其之前的原理2.ConcurrentHashMapJDK8及其之后的原理特别说明,下列工具类仅介绍其本身的特点,具体使用方法可查看HashMap集合。看HashMap可按我一、HashtableHashtable出现的原因 : 在集合类中HashMap是比较常用的集合对象,但是HashMap是线程不安全的(多线程环境下可能会存在问题)。为了保证数据的安全性我们可以使用Hasht原创 2020-12-12 19:38:48 · 198 阅读 · 1 评论 -
Java-多线程中的原子性问题
文章目录一、volatile关键字二、原子性三、Atomic包1.Atomic包概述2.AtomicInteger的常用方法3.AtomicInteger内存解析四、悲观锁和乐观锁一、volatile关键字当A线程修改了共享数据时,B线程没有及时获取到最新的值,如果还在使用原先的值,就会出现问题堆内存是唯一的,每一个线程都有自己的线程栈。每一个线程在使用堆里面变量的时候,都会先拷贝一份到变量的副本中。在线程中,每一次使用是从变量的副本中获取的。Volatile关键字 : 强制原创 2020-12-12 19:17:14 · 470 阅读 · 0 评论 -
Java-线程池2020年
文章目录一、线程状态二、线程池一、线程状态当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。Java中的线程状态被定义在了java.langThread.State枚举类中,State枚举类的源码如下:public class Thread { public enum State { /* 新建 */ NEW , /* 可运行状态 */原创 2020-12-12 19:07:14 · 175 阅读 · 0 评论 -
Java-死锁、生产者消费者问题和阻塞队列
文章目录一、死锁一、死锁线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。什么情况下会产生死锁资源有限同步嵌套public class Csdn { public static void main(String[] args) { Object objA = new Object(); Object objB = new Object(); new Thread(() -> {原创 2020-12-08 10:27:00 · 381 阅读 · 0 评论 -
Java-同步2020年
文章目录一、多线程安全问题二、同步代码块三、同步方法四、Lock锁一、多线程安全问题安全问题出现的条件是多线程环境有共享数据有多条语句操作共享数据如何解决多线程安全问题?让程序没有安全问题的环境怎么实现?把多条语句操作共享数据的代码给锁起来,让任意时刻只能有一个线程执行即可二、同步代码块synchronized(任意对象) { 多条语句操作共享数据的代码}就相当于给代码加锁了,任意对象就可以看成是一把锁同步的好处和弊端好处:解决了多线程的数据安全问题原创 2020-12-08 09:46:06 · 162 阅读 · 0 评论 -
Java-多线程2020年
文章目录一、多线程概述二、实现多线程的方式1.继承Thread类2.实现Runnable接口3.实现Callable接口4.三种实现方式的对比三、多线程的常用方法四、线程优先级一、多线程概述多线程是指用软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能。并发和并行并行:在同一时刻,有多个指令在多个CPU上同时执行。并发:在同一时刻,有多个指令在单个CPU上交替执行。进程和线程进程:正在运行的程序。独立性:进程是一原创 2020-12-07 17:17:36 · 81 阅读 · 0 评论