乐观锁的一种实现方式——CAS在深入理解乐观锁与悲观锁一文中我们介绍过锁。本文在这篇文章的基础上,深入分析一下乐观锁的实现机制,介绍什么是CAS、CAS的应用以及CAS存在的问题等。线程安全众所周知,Java是多线程的。但是,Java对多线程的支持其实是一把双刃剑。一旦涉及到多个线程操作共享资源的情况时,处理不好就可能产生线程安全问题。线程安全性可能是非常复杂的,在没有充足的同步的情况下,多个线程
分类:
其他好文 时间:
2020-11-01 11:07:17
阅读次数:
21
maven 将runtime注释掉,不然会报错找不到我们要用的PGObject类 <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> runtime--> </dependency> s ...
分类:
数据库 时间:
2020-11-01 09:54:59
阅读次数:
20
多线程在面试中基本上已经是必问项了,面试官通常会从简单的问题开始发问,然后再一步一步的挖掘你的知识面。
比如,从线程是什么开始,线程和进程的区别,创建线程有几种方式,线程有几种状态,等等。
接下来自然就会引出线程池,Lock,Synchronized,JUC的各种并发包。然后就会引出 AQS、CAS、JMM、JVM等偏底层原理,一环扣一环。
这一节我们不聊其他的,只说创建线程有几种方式。
是不是感觉非常简单,不就是那个啥啥那几种么。
其实不然,只有我们给面试官解释清楚了,并加上我们自己的理解,才能在面试中加分。
分类:
编程语言 时间:
2020-10-31 01:27:12
阅读次数:
74
多线程在面试中基本上已经是必问项了,面试官通常会从简单的问题开始发问,然后再一步一步的挖掘你的知识面。
比如,从线程是什么开始,线程和进程的区别,创建线程有几种方式,线程有几种状态,等等。
接下来自然就会引出线程池,Lock,Synchronized,JUC的各种并发包。然后就会引出 AQS、CAS、JMM、JVM等偏底层原理,一环扣一环。
这一节我们不聊其他的,只说创建线程有几种方式。
是不是感觉非常简单,不就是那个啥啥那几种么。
其实不然,只有我们给面试官解释清楚了,并加上我们自己的理解,才能在面试中加分。
分类:
编程语言 时间:
2020-10-31 01:26:55
阅读次数:
15
drawcall和batch的概念和区别可以结合冯乐乐书的前端章节和以下i链接达到透彻的理解 正如链接中所讲,batch是比drawcall所指范围更广的概念,包含了drawcall https://blog.csdn.net/Wei_Yuan_2012/article/details/886771 ...
分类:
其他好文 时间:
2020-10-30 11:34:39
阅读次数:
22
1.前言在Java中一提到随机数,很多人就会想到Random类,如果有生成随机数的需求的时候,大多数时候都会选择使用Random来进行随机数生成,虽然其内部使用CAS来实现,但是在多线程并发的情况下的时候它的表现并不是很好。在JDK1.7之后,JDK提供了提供了更好的解决方案,接下来让我们一起学习下到底为什么Random会慢?又是怎么解决的呢?2.RandomRandom这个类是JDK提供的用来生
分类:
编程语言 时间:
2020-10-29 10:47:54
阅读次数:
47
1.背景最近一直再做一些系统上的压测,并对一些问题做了优化,从这些里面收获了一些很多好的优化经验,后续的文章都会以这方面为主。这次打压的过程中收获比较的大的是,对RocketMq的一些优化。最开始我们公司使用的是RabbitMq,在一些流量高峰的场景下,发现队列堆积比较严重,导致RabbitMq挂了。为了应对这个场景,最终我们引入了阿里云的RocketMq,RocketMq可以处理可以处理很多消息
分类:
其他好文 时间:
2020-10-29 09:59:01
阅读次数:
18
福哥答案2020-10-22: 简单回答:相同点:都是多个单元操作。不同点:LongAdder相加,LongAccumulator自定义计算规则。 中级回答:相同点: LongAddr与LongAccumulator类都是使用非阻塞算法CAS实现的,这相比于使用锁实现原子性操作在性能上有很大的提高。 ...
分类:
编程语言 时间:
2020-10-22 23:16:59
阅读次数:
46
UUID.randomUUID().toString()是javaJDK提供的一个自动生成主键的方法。 UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,是由一个十六位的数字组成,表现出来的形式 ...
分类:
其他好文 时间:
2020-10-20 16:25:42
阅读次数:
31
利用TfidfVectorizer进行中文文本分类(数据集是复旦中文语料) 利用RNN进行中文文本分类(数据集是复旦中文语料) 上一节我们利用了RNN(GRU)对中文文本进行了分类,本节我们将继续使用CNN对中文文本进行分类。 数据处理还是没有变,只是换了个模型,代码如下: # coding: ut ...
分类:
其他好文 时间:
2020-10-19 23:06:35
阅读次数:
58