J.U.C CAS】的更多相关文章

在JDK1.5之前,也就是J.U.C加入JDK之前,Java是依靠synchronized关键字(JVM底层提供)来维护协调对共享字段的访问,保证对这些变量的独占访问权,并且以后其他线程忽的该锁时,将可以看到对这些变量进行的更改(可见性,互斥性). 锁机制的问题: 锁问题不可回避的,就是上下文切换,加重系统线程调度,引起性能问题: 不一致的获得多个锁的顺序,还可能引发死锁: 如果一个线程试图获得其他线程已经具有的锁时,那么该线程将被阻塞,直到该锁可用,期间它无法进行其他任何操作,试想对一组操作序…
主要题意是:大海之间有岛,有的岛之间有桥,问你岛的个数,桥的个数,以及没有桥联通岛的个数,其中最后一次输入的没有回车,不注意的话最后一次会被吞,第二,桥的两端的标记是“X”(X也代表陆地),“X”的四周都可以有“B”形成的桥,一开始没写好,后来根据“X”标记所有的桥只能走一次然后标记……总之,虽然是水题,写出来还是蛮开心的…… #include <iostream> #include <cstdio> #include <cstdlib> #include <al…
数学期望 概率递推 每一天的概率都是独立且相同的.可以先推出每天打i盘赢j盘的概率f[i][j] f[i][j]=f[i-1][j]*(1-p) + f[i-1][j-1]*p 输 赢 设此人打一天胜率不满足要求的概率为p 那么打一天的概率是1*p 打两天的概率是1*p*(p^2) 以此类推 ---- 题解待施工 学自http://www.cnblogs.com/neopenx/p/4282768.html ---- WA点: 1.a和b用double存,可能引起了精度误差. 2.输出没换行 /…
参考: http://bbs.csdn.net/topics/390391810?page=1 自己遇到的: ------------------------------------------------------------------------------------------------------------------------------------------------------------------ ## A fatal error has been detect…
极其鬼畜的题. 初见根本没有思路. 二见根本没有思路. …… 多年(并不)之后突然想到,也许可以用链表模拟. 先用链表把每一个节点串起来,并对有覆盖的地方进行标记. 模拟解锁操作,如果一个节点和它所覆盖的节点之间没有其他结,那么进行逆self loop操作. 同理进行逆passing操作. 如果能把所有的结都解开,则答案是有解. 优化:把没有覆盖/被覆盖的节点提前删掉,缩短链表长度. /*by SilverN*/ #include<iostream> #include<algorithm…
枚举每个格子的状态显然是不可能的. 思考发现,矩阵第一行的状态确定以后,下面的状态都可以递推出来. 于是状压枚举第一行的状态,递推全图的状态并判定是否可行. /*by SilverN*/ #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #include<cmath> #include<list> using namespace std;…
背包解组合数学问题,n种物品,每种num[i]个,求取r个的方法数. 背包思想,f[j]表示当前取j个数的方法数,则状态转移方程为 f[j] += f[k](max(j - num[i], 0) <= k < j) 外层循环枚举物品,内层循环从大到小枚举空间,最内层枚举方法数. #include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> #include<s…
题目链接 输出路径,搞了一个DFS出来,主要是这里,浪费了好长时间. #include <cstdio> #include <string> #include <cstring> #include <iostream> #include <algorithm> using namespace std; ][]; ],v[],que[]; int maxz,ti; void dfs(int n,int T,int step) { int i,t1,…
题目链接 脑子有点乱,有的地方写错了,尚大婶鄙视了... 来个模版的. #include <iostream> #include <cstdio> #include <cstring> using namespace std; #define LL __int64 LL dp[][]; ]; LL dfs(int pos,int pre,int bound) { int end,tpre,i; LL ans = ; ) ; ) return dp[pos][pre];…
题意:给你n个数,m个查询,查询中包括一个数和一个最大编辑距离d,问n个数中和这个数的编辑距离不超过d的有多少个 编辑距离:http://baike.baidu.com/view/2020247.htm?from_id=792226&type=syn&fromtitle=Levenshtein+Distance&fr=aladdin 思路:设dp[i][j]为数字a前i个数和数字b前j个数的编辑距离 则dp[i][j]=min(dp[i-1][j]+1,dp[i][j-1+1,dp…