1.同步容器,同步容器包括Vector和HashTable,是早期jdk的一部分。另一部分是同步包装类,以Collections.synchronizedxxx的工厂方法创建。
2.同步容器虽然是线程安全的,但是对于复合操作,有时你可能需要加上额外的客户端加锁进行保护,即对于使用这些容器的客户端代码,如果存在复合操作,还是可能存在风险。
3.例如check-and-act操作、循环中的元素操作...
分类:
编程语言 时间:
2014-05-07 08:33:56
阅读次数:
423
CyclicBarrier一个线程同步辅助类,它允许一组线程互相等待,直到线程数达到了CyclicBarrier初始时规定的数目时,才继续运行;CyclicBarrier和CountDownLacth不同,CyclicBarrier是当await的数量到达了设定的数量后,才继续往下执行,而...
分类:
编程语言 时间:
2014-05-07 07:54:32
阅读次数:
408
目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次迭代完成后,所有顶点都是InActive状态。在大同步后,收到消息的顶点会被激活,变为Active状态,然后调用顶点的compute()方法。本文的目的就是统计每次迭代过程中,参与计算的顶点数目。下面附上SSSP的compute()方法:...
分类:
其他好文 时间:
2014-05-07 06:25:52
阅读次数:
415
eshell是emacs shell的简称,是emacs自带的shell.开始设置的时候还在想是否要找到它的key map (eshell-mode-map?).
原来它是采用hook设置,如下所示
(add-hook 'eshell-mode-hook
(lambda ()
(local-set-key (kbd "C-j") 'switch-to...
分类:
其他好文 时间:
2014-05-07 05:25:39
阅读次数:
253
在项目开发中遇到了这样一种情况:
需要用一个干净的工程(export出来的,没有svn信息)去覆盖一个主干的工程(含有svn信息),然后提交代码;我们在mac系统中拷贝->粘贴到目标文件夹,只有2个选项:停止和全部替换;选择全部替换后,svn信息全部丢失了。
这时我们可以使用cp -r dir1 rootdir 来进行覆盖,dir1是那个干净工程的文件夹路径,和主干工程同名;rootdir是主...
分类:
其他好文 时间:
2014-05-07 05:18:18
阅读次数:
561
我喜欢用自己的语言通过联系现实生活中的一些现象解释一些概念,当我能做到这一点时,说明我已经理解了这个概念.今天要解释的概念是:同步/异步与阻塞/非阻塞的区别.
这两组概念常常让人迷惑,因为它们都是涉及到IO处理,同时又有着一些相类似的地方.
首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.
举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的...
分类:
其他好文 时间:
2014-05-07 04:14:40
阅读次数:
309
从SVN下载项目后,我把项目名称改了一下然后启动tomcat后就一直报java.lang.IllegalArgumentException: Can't convert argument: null这个错。
解决办法是:第一步、将web.xml文件的头文件以javaee:开始的命名空间删除。如图:
第二步:将web.xml文件中所有javaee:替换成空白。如图:
重启tomcat,...
分类:
编程语言 时间:
2014-05-07 03:42:31
阅读次数:
421
Eclipse修改svn地址
SVN地址变更后 需要重定向
步骤有3 :
1 ) 打开eclipse中SVN资源库
在Eclipse中选择Windows-> Show View->others
如果列表里面没有就去 other... 里面找
下图是打开后的SVN资源库:
2 ) 右键点击 需要重定向的svn地址 右键...
分类:
系统相关 时间:
2014-05-07 03:28:16
阅读次数:
360
此方法不必删除目录重新下载:针对于第一次成功checkout,一段时间后,update 报此
403错误,我找到了解决方法:即 使用switch 重新定位svn路径,解决这个问题。(附图)ps:能svn checkout
那么你的路径就是正确的,如果大小写错误,svn是不支持checkout。如果是...
分类:
其他好文 时间:
2014-05-06 18:19:39
阅读次数:
354
虽然多线程的使用可以提高应用程序的性能,但也增加了复杂性。 如果使用线程在同一时间执行几个函数,访问共享资源时必须相应地同步。 一旦应用达到了一定规模,这涉及相当一些工作。 所以要学习Boost.Thread提供同步线程的类。...
分类:
编程语言 时间:
2014-05-06 14:42:40
阅读次数:
329