- 浏览: 159192 次
- 性别:
- 来自: 上海
最新评论
-
qinyou1994:
请问 查询 附近的 商店 能返回 距离具体值吗?
使用morphia对基于mongodb应用开发 -
xiyueshenyan:
BeanDefinitionRegistry是个接口,图片错了 ...
BeanDefinition 解析和注册 -
秦时明月黑:
三年了,距今三年了,三年前已经有人熟读源码,膜拜,邀想2012 ...
ThreadPoolExecutor execute 方法分析 -
fengzhonghun102:
太专业了! 非常感谢!
ThreadPoolExecutor execute 方法分析 -
dj4307665:
...
AbstractExecutorService任务提交<一>
文章列表
submit方法分析完毕,接着看两个invokeAll方法,先看第一个:
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
throws InterruptedException {
if (tasks == null)
throw new NullPointerException();
List<Future<T>& ...
现在可以来记录AbstractExecutorService的异步任务提交了,单刀直入吧,先看三个submit方法提交单个任务:
public Future<?> submit(Runnable task) {
if (task == null) throw new NullPointerException();
RunnableFuture<Object> ftask = newTaskFor(task, null);
execute(ftask);
return ftask;
...
在技术上,这其实没什么纠结的,只是上一个功能关于动态grid弄好已经接近18:00,这临近下班的时间再搞这个问题,而且紧急,在感情还是上蛮纠结的。加上系统本来已经就有个tree在运转,当然数据格式不是基于XML的,只不过那个tree实在太臃肿而且问题不断,现在要重写就更纠结了。
还好我之前在另一个模块写过一个基于XML数据的Tree,代码还算简洁,复用度蛮高,只不过那个场景下不是Lazy Loading,现在要改成Lazy Loading而已。连写带调半个小时搞定,呵呵。
首先,上次树的定义可以复用,ABCTree.mxml(为避免×××嫌疑,名字以ABC代替):
<?xm ...
项目实在太紧,多线程模块SIT还没结束,一堆前台的问题也得亲自上阵,马不停蹄加班加点到这一刻终于收工,趁热记录下遇到过的两个纠结的功能。今天先写第一个:
关于flex动态AdvancedDataGrid的操作,前台根 ...
既然最终任务都是由execute(Runnable)方法执行,就直接来看该方法实现的所在类。
首当其冲肯定是类ThreadPoolExecutor了,相信他是java concurrent包中用的最多的一个
线程池执行器,包括spring中ThreadPoolTaskExecutor也是利用它来执行任务的。从类的
“家谱”来看,ThreadPoolExecutor直接继承自AbstractExecutorService,因此必须实现的方
法只有public void execute(Runnable command),查看之发现和想象不一样(原以为他会直接
以此
最近刚刚写完一个多线程的模块,感叹java concurrent强大的同时,整理了下近一周学习,打算大概记录下,
主要是读了部分concurrent包的代码. 有了java concurrent,客户端写多线程果然简单多了,首先需要用到的类是java.util.co ...
贪心算法之活动选择问题
- 博客分类:
- 算法
/**
* 活动选择之贪心解法
* 在上周学习动态规划时已经用动态规划分析了活动选择,有:
* A[i][j] = A[i][k] ∪ {a[k]} ∪ A[k][j]
* c[i][j] = c[i][k] + 1 + c[k][j]
* 将A[i][j]的解分解到两个子集(A[i][k]和A[k][j])的解,如果进一步分析:
* 假设对于任意非空子集S[i][j],设a[m]是S[i][j]中具有最小结束时间的活动即:
* f[m] = min{f[k]: a[k] 属于S[i][j]}
* 于是有新的结论:
*
* 1 ...
/**
* 动态规划之最长公共子序列问题:给定一个子序列 X = <x1,x2,...xm>,另一个子序列Z = <z1,z2,...zk>是X的子序列,如果存在X的一个严格递增下标序列
* <i1,i2,...ik>,使得对于所有j = 1,2,...k,有xij = zj。如Z=<B,C,D,B>是X=<A,B,C,B,D,A,B>子序列,对应下标i = <2,3,5,7>
* LCS问题:给定序列X=<x1,x2,...xn>和Y=<y1,y2...ym>,找出X和Y的最长公共 ...
动态规划之装配线问题
- 博客分类:
- 算法
/**
* 动态规划之装配线问题:
* 有两条装配线L1和L2,每条装配线上有n个站,将装配线i(=1或2)的第j个站表示为S[i][j].装配线1和2的第j个站功能相同,但是加工的时间不同,设S[i][j]站得时间为a[i][j]
* 一个产品进入生产线i的时间为e[i],完成后离开生产线i的时间为x[i]
* 一个产品在同一条装配线上从上一站完成后转移到下一站的时间为0,但是从一条装配线L[i]上得一个站S[i][j]转移到另一条装配线上得站S[i'][j+1]需要时间为t[i][j]
*
* 思路:通过S[i][j]站最快的路线,必定是通过S[1][j-1] ...
在堆排序基础上顺便实现下优先队列,纯粹为实现下优先队列的思想,也顾不上代码丑陋了,嘿嘿,自己学习。
public class PriorityQueue<T extends Comparable<T>> {
/**
* 和对排序中一样,第零个元素不做用
*/
private T[] queue;
private int heapSize;
/**
* 初始化队列
* @param a
*/
@SuppressWarnings("unchecked& ...
顺便复习了下部分排序
- 博客分类:
- 算法
这两天趁复习算法之际,顺便实现了下插入、合并、堆和快速排序。不解释,贴点代码算是给自己留下备日后复习。
/**
* Sort the array of a
* Just like a number of n cards on the desk, you pick one by one, each time you pick up one card, insert into the correct place into the cards in your hand
* @param <T>
* @param a
*/
@SuppressWarn ...
动态规划之活动选择--代码实现
- 博客分类:
- 算法
昨天对活动选择的动态规划解做了分析和描述,今天就来简单的实现一下代码,并用实例来验证其运行的正确性。
//基础类用来保存动态的集合A[i][j]
class DynamicSet{
public static DynamicSet empty = new DynamicSet(null);
List<Integer> resultSet = null;
public DynamicSet(){
resultSet = new ArrayList<Integer>();
}
public Dyna ...
最近复习了算法导论部分内容,感觉好陌生啊。记得研一老师只上了算法入门,其余的章节班级分组学习讲解,我只记得我们那一组负责的内容,有关图论、Dijkstra之类的。这两天看了动态、贪心算法,感觉这个真的很不错,以前只忙于准备自己的章节,也没有细细学习和体会。
总体感觉(个人的理解,不一定准确),动态规划的核心步骤是分析问题,描述出解的递推公式,这个类似于高中学得数列只是更加复杂一些,毕竟数列大部分能笔算出来,而动态规划中就必须借助程序来解了。然后自底向上计算出解。所谓自底向上,从初始值开始计算各个值,并维护一个table来存储这些值,后面计算的值往往会用到前面计算的值,有点空间换时间的 ...
今天帮朋友改一个问题,hibnernate的级联保存出错,莫名奇妙的错误,一会session关闭了,一会瞬时对象无法保存,一遍又一遍的检查这mapping文件,没什么问题啊,这是单项一对多关联:
一端:
<hibernate-mapping package="com.bestv.bi.usertrack.model">
<class name = "ParameterRecord" table = "fact_parameterrecord">
<id name="id" ...
作为开发人员,一直把重点关注在技术架构、代码、并发效率上,却从来没有认真仔细的虑数据库,昨天、今天做了一次小小的重构,顺便学习了一下MySql,发现这里大有搞头。小记一下这个过程,便于今后查阅。
这是一个搜索系统,搜索引擎这边直接将数据库数据增量索引到索引库,提供给公司内部其他系统进行搜索,到没有出现性能问题。但是在搜索管理系统中,和数据库打交道比较多,中央-驻地二级管理运行模式,使得跨库事务、业务逻辑相对复杂一些,也出现一些较长的延迟等待。当初数据库是直接根据对象关系自动生成,由于开发紧迫,没有深究。
首先,当初对象关系 Info 和 Keyword做双向为one-to ...