- 博客(4)
- 收藏
- 关注
原创 队列同步器和排它锁的简单实现
队列同步器 队列同步器AbstractQueuedSynchronizer,是用来构建锁或者其他同步组件的基础框架,它使用了一个int类型的成员变量来表示当前的同步状态,例如1表示有线程在占用锁,0表示没有线程占用该锁。它采用了FIFO的队列来实现。 拿独占锁来说,队列中有多个节点(Node),每个节点代表每个线程。而这个队列的头部(head)会放在一个同步器中,表示其头部正在占用该线程。 而其他的节点都会处于一个自旋的状态(其实就是一个for循环),以下列出同步队列器的源码。 /** * Acquir
2020-11-02 21:26:53
198
原创 volatile实现原理及使用
volatile学习 近期在看《java并发编程的艺术》这本书,把自己的一些学习感悟给记录一下,当做是笔记啦! volatile的作用 volatile保证了共享变量的可见性,也就是当一个线程修改这个共享变量时,另一个线程能够读到这个变量被修改之后的值。 volatile的实现原理 参考文章:https://mp.weixin.qq.com/s?src=11×tamp=1604215013&ver=2679&signature=XLUN03Ua1ZboiEt3wUBQXMG
2020-11-01 16:57:34
305
2
原创 MapReduce的一个令我不解的问题
MapReduce的一个令我不解的问题问题的产生写MR的思路 问题的产生 自己在做一个关于用户数据行为分析的项目。首先先看一下项目的数据吧! 因为导师说之后的数据量更大,所以我需要使用Hive进行数据存储和使用MapReduce进行数据的计算分析。当然,我们当前的数据量是两亿条,差不多18个G的数据。所以我先写了一些MR的测试代码。 写MR的思路 因为我需要计算出车辆每天的行驶时间、里程、速度等信息,所以我需要写一个bean,里面包含车辆ID和日期,用来当做key并且根据key进行分组。 ```java
2020-08-08 17:16:56
747
原创 蓝桥杯 炮台实验
在这个游戏中,所有炮台发射的炮弹会摧毁前方所有高度比自己低的炮台。每当蒜头君把 nn 个炮台排成一行后,可能会有一些炮台被摧毁。举个例子:当前有 5个炮台,从左到右高度分别为 2,1,3,5,4往右发射炮弹后,高度为 4 的炮台被高度为 5的摧毁,高度为 1 的炮台被高度为 2 的炮台摧毁,最后只会剩下 2,3,5这三个炮台。 现在蒜头君想知道,如果随机地摆放这 nn 个炮台,最后剩下炮台个数的...
2019-03-01 10:53:41
285
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人