JUC并发编程 java.util.ConcurrentModificationException 并发修改异常 多线程基础 普通线程代码Thread Runnable没有返回值,效率相比于Callable慢 线程和进程 进程:一个程序,程序的集合 一个进程往往可以包含多个线程至少包含一个 java ...
分类:
其他好文 时间:
2021-04-20 14:17:55
阅读次数:
0
Thread类是怎么创建线程的 java中运行一个线程有好多方式,比如实现一个Runnable接口然后传递给Thread构造函数,还是交给线程池来创建线程执行等等。但是最后都是创建new Thread对象,最后通过thread.start方法来启动一个线程。 但是Java中Thread类只是一个普通 ...
分类:
其他好文 时间:
2021-04-15 12:41:22
阅读次数:
0
生产者 - 消费者(Producer-Consumer),也叫有限缓冲(Bounded-Buffer),是多线程同步的经典问题之一 头文件 #include <condition_variable> #include <iostream> #include <mutex> #include <thr ...
分类:
编程语言 时间:
2021-04-13 11:38:19
阅读次数:
0
上篇文章记录到volatile在硬件层面怎么保证线程间可见性的,是通过lock锁缓存行缓存一致性协议来实现的。但是这样会有一个伪共享的问题。 首先缓存行在64bit机中一般为64字节,具体缓存行大小可以通过下面的命令查看: cat /proc/cpuinfo 假设有一个对象有两个long类型的数据x ...
分类:
编程语言 时间:
2021-04-02 13:27:35
阅读次数:
0
##简介 Java的java.util.concurrent包中提供了并发相关的接口和类,本文将重点介绍CompletableFuture并发操作类 JDK1.8新增CompletableFuture该类 Class CompletableFuture<T> java.lang.Object jav ...
分类:
编程语言 时间:
2021-03-29 11:37:02
阅读次数:
0
1. ConcurrentHashMap源码分析(JDK1.7) 1.1 Unsafe介绍 1.1.1 Unsafe简介 Unsafe类相当于是一个java语言中的后门类,提供了硬件级别的原子操作,所以在一些并发编程中被大量使用。jdk已经作出说明,该类对程序员而言不是一个安全操作,在后续的jdk升 ...
分类:
其他好文 时间:
2021-03-15 10:33:46
阅读次数:
0
引言 上一篇文章我们介绍了AQS的信号量Semaphore《Java高并发编程基础三大利器之Semaphore》,接下来应该轮到CountDownLatch了。 什么是CountDownLatch CountDownLatch是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕 ...
分类:
编程语言 时间:
2021-03-12 12:32:20
阅读次数:
0
部分主要阐述 Thread 的基础知识,详细介绍线程的 API 使用、线程安全、线程间数据通信,以及如何保护共享资源等内容,它是深入学习多线程内容的基础。 第二部分引入了 ClassLoader,这是因为 ClassLoader 与线程不无关系,我们可以通过 synchronized 关键字,或者 ...
分类:
编程语言 时间:
2021-03-01 13:34:44
阅读次数:
0
在上一篇文章中,我们讲到了 goroutine 在操作系统的并发编程体系,以及在 Go 语言并发编程模型中的地位和作用等一系列内容,今天我们继续来聊一聊这个话题。 知识扩展 问题 1:怎样才能让主 goroutine 等待其他 goroutine? 我刚才说过,一旦主 goroutine 中的代码执 ...
分类:
编程语言 时间:
2021-02-26 13:15:22
阅读次数:
0
引言 曾经有一道比较比较经典的面试题“你能够说说java的并发包下面有哪些常见的类?”大多数人应该都可以说出 CountDownLatch、CyclicBarrier、Sempahore多线程并发三大利器。这三大利器都是通过AbstractQueuedSynchronizer抽象类(下面简写AQS) ...
分类:
编程语言 时间:
2021-02-25 12:23:16
阅读次数:
0