- 上一篇我们介绍了ArrayList的相关源码,这篇我们将了解一下fail-fast机制的相关知识 fail-fast的简介fail-fast的相关示例fail-fast的解决办法 fail-fast的原理解决fail-fast的原理 fail-fast的简介 fail-fast机制是java 集合的一种错误机制。 当多个线程对同一个集合的内容进行操作时,就会产生fai... 上一篇我们介绍了ArrayList的相关源码,这篇我们将了解一下fail-fast机制的相关知识 fail-fast的简介fail-fast的相关示例fail-fast的解决办法 fail-fast的原理解决fail-fast的原理 fail-fast的简介 fail-fast机制是java 集合的一种错误机制。 当多个线程对同一个集合的内容进行操作时,就会产生fai...
- 摘要 并发编程世界里,由于CPU缓存导致的可见性问题,线程切换导致的原子性问题,以及编译器重排序导致的有序性问题是并发编程Bug的根源。 正文 可见性 一个线程对共享变量的修改。另外一个线程能够立刻看到,我们称之为可见性。共享变量指的是存放在堆内存,由所有线程所共享的变量。比如:实例变量,静态变量。 如图所示: 共享变量V可以由线程A和线程B同时操作,线程A和... 摘要 并发编程世界里,由于CPU缓存导致的可见性问题,线程切换导致的原子性问题,以及编译器重排序导致的有序性问题是并发编程Bug的根源。 正文 可见性 一个线程对共享变量的修改。另外一个线程能够立刻看到,我们称之为可见性。共享变量指的是存放在堆内存,由所有线程所共享的变量。比如:实例变量,静态变量。 如图所示: 共享变量V可以由线程A和线程B同时操作,线程A和...
- 文章目录 前言 ConcurrentHashMap是啥时候进行扩容的? 第一处 helpTransfer方法 第二处treeifyBin方法 第三处addCount方法 transfer方法 参考 前言 前面对ConcurrentHashMap做了个一个整体的介绍,但是还有些疑问没问解决? ConcurrentH... 文章目录 前言 ConcurrentHashMap是啥时候进行扩容的? 第一处 helpTransfer方法 第二处treeifyBin方法 第三处addCount方法 transfer方法 参考 前言 前面对ConcurrentHashMap做了个一个整体的介绍,但是还有些疑问没问解决? ConcurrentH...
- 前言 前面我们介绍了Redis数据库以及键空间。这一篇我们继续介绍一下Redis的持久化。Redis持久化的方式有两种,一种是RDB的方式,一种是AOF的方式。 RDB的方式 RDB是Redis DataBase的缩写。是Redis默认的持久化方式,它按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件是dump.rdb。通过配置文件中的save... 前言 前面我们介绍了Redis数据库以及键空间。这一篇我们继续介绍一下Redis的持久化。Redis持久化的方式有两种,一种是RDB的方式,一种是AOF的方式。 RDB的方式 RDB是Redis DataBase的缩写。是Redis默认的持久化方式,它按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件是dump.rdb。通过配置文件中的save...
- 问题描述: 最近在编写MFC程序,用到了浏览器控件【Microsoft Web Browser】,通过浏览器对象的Navigate()函数设置显示html页面,将写好的文件放在程序目录下之后,想用相对路径来调用自己写的一个“geodemo.htm”文件,失败。 原因: 首先你要搞懂什么是相对路径。相对路径就是相对本进程的当前活动目录,一般是在本进程的可... 问题描述: 最近在编写MFC程序,用到了浏览器控件【Microsoft Web Browser】,通过浏览器对象的Navigate()函数设置显示html页面,将写好的文件放在程序目录下之后,想用相对路径来调用自己写的一个“geodemo.htm”文件,失败。 原因: 首先你要搞懂什么是相对路径。相对路径就是相对本进程的当前活动目录,一般是在本进程的可...
- 前言 上一篇我们介绍了在并发编程里面导致bug的三种问题,可见性问题,原子性问题,有序性问题。针对这三个问题,Java语言提供了Java内存模型(JMM)来解决这三种问题,主要是针对有序性和可见性问题。其本质上就是按需禁用缓存和编译优化。接下来我们就详细的阐述下。 Java内存模型介绍 Java 内存模型是一个很复杂的规范,本质上可以理解为:Java内存模型规范了... 前言 上一篇我们介绍了在并发编程里面导致bug的三种问题,可见性问题,原子性问题,有序性问题。针对这三个问题,Java语言提供了Java内存模型(JMM)来解决这三种问题,主要是针对有序性和可见性问题。其本质上就是按需禁用缓存和编译优化。接下来我们就详细的阐述下。 Java内存模型介绍 Java 内存模型是一个很复杂的规范,本质上可以理解为:Java内存模型规范了...
- 前言 上一篇我们介绍了Spring Cloud 学习笔记06----断路器(Hystrix)(Finchley版本)。那一篇主要是介绍Hystrix用来做熔断处理。这一篇我们将重点介绍一下用Hystrix来做限流器以及服务隔离器。 工作流程 首先让我们看看官方文档上的工作流程图。 英文版的流程图看不懂,没关系,咱们还有中文版的工作流程图。 流程说明 每次调... 前言 上一篇我们介绍了Spring Cloud 学习笔记06----断路器(Hystrix)(Finchley版本)。那一篇主要是介绍Hystrix用来做熔断处理。这一篇我们将重点介绍一下用Hystrix来做限流器以及服务隔离器。 工作流程 首先让我们看看官方文档上的工作流程图。 英文版的流程图看不懂,没关系,咱们还有中文版的工作流程图。 流程说明 每次调...
- 目录 前言 ThreadPoolExecutor类的常量 execute方法 addWorker的方法 Work 类 ThreadFactoryBuilder类 DefaultThreadFactory类 runWorker getTask方法 总结 参考 前言 上一篇我们介绍了线程池的使用,这一篇我们接着分析下线程池... 目录 前言 ThreadPoolExecutor类的常量 execute方法 addWorker的方法 Work 类 ThreadFactoryBuilder类 DefaultThreadFactory类 runWorker getTask方法 总结 参考 前言 上一篇我们介绍了线程池的使用,这一篇我们接着分析下线程池...
- ExecutorCompletionService类 当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果,有两种方式可以采取: 方式一: 通过一个list来保存一组future,然后在循环中轮训这组future,直到每个future都已完成。如果我们不希望出现因为排在前面的任务阻塞导致后面先完成的任务的结果没有及时获取的情况,那么在... ExecutorCompletionService类 当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果,有两种方式可以采取: 方式一: 通过一个list来保存一组future,然后在循环中轮训这组future,直到每个future都已完成。如果我们不希望出现因为排在前面的任务阻塞导致后面先完成的任务的结果没有及时获取的情况,那么在...
- 简单应用: 首先来看一个简单的例子: 两个线程,分别实现对1-100内的奇数,偶数的输出。 第一种方法:通过接口 MyRun类: package thread.hello; /** * 通过实现Runnable接口来实现多线程 * @author 陈浩翔 * * @version 1.0 2016-4-21 */ public class MyRu... 简单应用: 首先来看一个简单的例子: 两个线程,分别实现对1-100内的奇数,偶数的输出。 第一种方法:通过接口 MyRun类: package thread.hello; /** * 通过实现Runnable接口来实现多线程 * @author 陈浩翔 * * @version 1.0 2016-4-21 */ public class MyRu...
- 如果对一个变量进行自加自减操作,一般这样写: int global_count = 0;global_count ++; 如果是多线程操作,一般都需要加锁处理: pthread_mutex_t count_lock = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_lock(&count_lock);global_count +... 如果对一个变量进行自加自减操作,一般这样写: int global_count = 0;global_count ++; 如果是多线程操作,一般都需要加锁处理: pthread_mutex_t count_lock = PTHREAD_MUTEX_INITIALIZER;pthread_mutex_lock(&count_lock);global_count +...
- 文章目录 第1题:阅读下面的代码,默读出A0,A1至An的最终值。第2题:如何提高python的运行效率?第3题: Python字典有什么特点,从字典中取值,时间复杂度是多少?第4题: 多线程、多进程?第5题: 请尽可能列举python列表的成员方法,并给出以下列表操作的答案: 第1题:阅读下面的代码,默读出A0,A1至An的最终值。 A0 = di... 文章目录 第1题:阅读下面的代码,默读出A0,A1至An的最终值。第2题:如何提高python的运行效率?第3题: Python字典有什么特点,从字典中取值,时间复杂度是多少?第4题: 多线程、多进程?第5题: 请尽可能列举python列表的成员方法,并给出以下列表操作的答案: 第1题:阅读下面的代码,默读出A0,A1至An的最终值。 A0 = di...
- 综合网上的一点资源,给大家整理了一些Java常用的基础面试知识点,希望能帮助到刚开始学习或正在学习的学员。 1、抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2、继承 继承是一种联结类的层次模型,并且允... 综合网上的一点资源,给大家整理了一些Java常用的基础面试知识点,希望能帮助到刚开始学习或正在学习的学员。 1、抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2、继承 继承是一种联结类的层次模型,并且允...
- 文章目录 第3章 设计模式 3.1 单例模式(Singleton Pattern) 3.1.1 懒汉式单例类 1、先对线程不安全的实例进行演示 线程不安全的懒汉式单例类 线程安全的懒汉式单例类 线程安全的懒汉式单例类 双重检验模式 静态内部类懒汉式实现 3.1.2 饿汉式单例类 第3章 设计模式 ... 文章目录 第3章 设计模式 3.1 单例模式(Singleton Pattern) 3.1.1 懒汉式单例类 1、先对线程不安全的实例进行演示 线程不安全的懒汉式单例类 线程安全的懒汉式单例类 线程安全的懒汉式单例类 双重检验模式 静态内部类懒汉式实现 3.1.2 饿汉式单例类 第3章 设计模式 ...
- 1.All IT eBooks多线程-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来。 然后放着,是的,就这么放着…然后慢慢的遗忘掉… All IT eBooks多线程-爬虫分析 打开网址 http://www.allitebooks.com/ 发... 1.All IT eBooks多线程-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来。 然后放着,是的,就这么放着…然后慢慢的遗忘掉… All IT eBooks多线程-爬虫分析 打开网址 http://www.allitebooks.com/ 发...
上滑加载中
推荐直播
-
仓颉编程语言开源创新人才培养经验分享
2025/08/06 周三 19:00-20:00
张引 -华为开发者布道师-高校教师
热情而富有活力的仓颉社区为学生的学习提供了一个充满机遇和挑战的平台。本次直播探讨如何运用社区的力量帮助同学们变身为开源开发者,从而完成从学生到工程师身份的转变。
回顾中 -
“全域洞察·智控未来” ——云资源监控实战
2025/08/08 周五 15:00-16:00
星璇 华为云监控产品经理,霄图 华为云监控体验设计师,云枢 华为云可观测产品经理
本期直播深度解析全栈监控技术实践,揭秘华为云、头部企业如何通过智能监控实现业务零中断,分享高可用系统背后的“鹰眼系统”。即刻预约,解锁数字化转型的运维密码!
即将直播
热门标签