在【Java并发编程实战】—–“J.U.C”:CLH队列锁提过,AQS里面的CLH队列是CLH同步锁的一种变形。其主要从两方面进行了改造:节点的结构与节点等待机制。在结构上引入了头结点和尾节点,他们分别指向队列的头和尾,尝试获取锁、入队列、释放锁等实现都与头尾节点相关,并且每个节点都引入前驱节点和后后续节点的引用;在等待机制上由原来的自旋改成阻塞唤醒。其结构如下:知道其结构了,我们再看看他的实现。...
分类:
编程语言 时间:
2015-12-30 09:20:20
阅读次数:
211
1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。2, 如果在同一个线程内,PostMessage发送消息时,消息要先放入线程的消息队列,然...
分类:
其他好文 时间:
2015-12-30 00:18:15
阅读次数:
208
第一次做判环 然后RE了五次 死在了奇怪的点memset(vis, 0, sizeof dis);memset(dis, 0, sizeof vis);什么鬼?? 什么鬼??其实代码本身还是不难的 就是spfa另外开个数组记录入队次数spfa不用写cmp真是太好了 operator什么的真的搞不清#...
分类:
其他好文 时间:
2015-12-26 10:01:15
阅读次数:
129
最近在做用setInterval在做定时器的时候,发现一些问题。就是一旦定时器中一旦任务执行时间超过定时间隔时间得时候,JavaScript不会等待这次任务执行完毕,重现计算时间间隔,而是到时间间隔一到立马将下次任务加入队列,并且等待该次任务执行完毕后,立马执行,所有定时加载变..
分类:
编程语言 时间:
2015-12-24 00:48:23
阅读次数:
228
研究ThreadPoolExecutor.excute()源码会发现,它调用了BlockingQueue.offer()来实现多余任务的入队。BlockingQueue有两个方法:BlockingQueue.offer()和BlockingQueue.put(),前者在队列满时不阻塞,直接失败,.....
分类:
编程语言 时间:
2015-12-23 12:19:51
阅读次数:
160
拓扑排序和机智的判环判合法。如果每次入队的点大于1个即为有多个拓扑序。如果该次没有点入队就是环。没时间写代码了,粘的题解。#include#includeint map[27][27],indegree[27],q[27];int TopoSort(int n){ int c=0,temp[2...
分类:
其他好文 时间:
2015-12-21 23:45:54
阅读次数:
187
bfs问题。走迷宫。有炸弹时限,有重置炸弹时间的机器。注意有些位置走过之后,按了重置器后依旧能够入队。所以检查变成 vis[][][]三维的。当然同一个重置器重复去走也没有意义,所以重置器检查 rest[][]。走到重置器的时候,炸弹时间变回去,路径时间+1。重置器rest[][]=1其它时候炸弹时...
分类:
Web程序 时间:
2015-12-20 22:18:09
阅读次数:
153
2013NOIP普及组压轴题。其实只要想到这个车子没停的站肯定比停的站级别低,拓扑排序,在节点入队时dis[e[i].v]=dis[head]+1维护最长路即可。但要注意此题含有大量重边,若不判重可能会tle掉。#include#include#include#include#include#def...
分类:
其他好文 时间:
2015-12-20 20:39:49
阅读次数:
166
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1922带限制最短路。每个点真正的dis是max(dis[i],dis[v]),v是其保护点。可以把题目中的保护转化为每个点的贡献。每次扫一边连出的边做最短路把rd为0的点加入队列。再扫一遍自己的贡...
分类:
其他好文 时间:
2015-12-17 19:09:01
阅读次数:
261
一上来看见题目就用了深搜(因为只会深搜)果断内存超限(据说时间也会超限)无奈只好开始用广搜其实广搜的思路和深搜有很多类似的地方 不过实现的过程中用到了队列 因此有点难以理解(好吧我个人认为)这题是最基本的广搜了 只是一个二叉树所以先画个二叉树出来看一下广搜的顺序每一个节点下一层的节点入队之后就把这个...
分类:
其他好文 时间:
2015-12-11 22:10:07
阅读次数:
221