`
songzi0206
  • 浏览: 159192 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
Group-logo
All are from ...
浏览量:33876
Group-logo
Programming w...
浏览量:19738
社区版块
存档分类
最新评论
文章列表
        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 ...

动态规划之LCS

/**  * 动态规划之最长公共子序列问题:给定一个子序列 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 ...
Global site tag (gtag.js) - Google Analytics