摘要:在前一篇中的流水作业系统中,劳动者挂掉后,由项目经理来负责处理(重新分配该子任务),这个影响相对比较小,但项目经理挂掉后,整个任务都要重新开始,就有点浪费了,这里我们采用土八路打仗的方式,让每个成员都知道打仗的目的和自己的任务(包括整体任务号,子任务号,项目经理是谁,自己负责处理的加工原料在那里,交互的产品放哪里等)同时这些成员在完成任务后,除了给项目经理报告结果之外,并不立即进行清场,而是要接到项目经理的指令后才清场,对于没有清场的任务,成员有义务每间隔一段时间发一个项目经理还活着没有的询问,如果多次询问,无结果的情况下,可以向Master报告,由Master暂时担当项目经理角色,这有4种情 阅读全文
关于分布式流水作业架构的一点浅见(领导者压力和瓶颈的解决方法和思路)
2012-01-21 10:31 by java线程例子, 211 阅读, 0 推荐, 收藏, 编辑
摘要:这段时间其实一直在思考Hadoop的东西,主要是我准备用Dotnet来模拟玩一下,这两天刚好看到 http://blog.csdn.net/cenwenchu79/article/details/7206804这篇文章,看来对hadoop的架构有看法的不止我一个,当然,别人都是牛人,有牛人敢怀疑,我也跟着说点看法。首先,坦率的讲,我没有用过hadoop,我只是了解过其机制,根据上面那位牛人的看法,hadoop的master会成为瓶颈,因为其担当的Reducer职责,就是最后归并结果。因为我没有实际用过hadoop,我没有发现这个问题,只是我在准备模拟hadoop的思考过程中,我觉得maste. 阅读全文
Delphi多线程及消息发送传递结构体参数
2012-01-18 23:36 by java线程例子, 510 阅读, 0 推荐, 收藏, 编辑
摘要:1、Unit2:unit Unit2; interface
uses windows,classes,NMICMP,SysUtils,StdCtrls,messages;
const WM_MY_PING = WM_USER +1024;
type //要传递的消息记录. TPingMsg = record msg : array[0..1023] of char; id : integer; Handled : boolean; msg2 : string; //建议如果需要动态管理,比如采用List,采用字符数组的方... 阅读全文
《java编程思想》之垃圾回收器如何工作
2012-01-18 23:00 by java线程例子, 552 阅读, 0 推荐, 收藏, 编辑
摘要:忙了几天,无关学习。旁晚才又看起书来,想想自己还有10来本。呵。这寒假过得会很局促。以下内容摘自《java编程思想》,再稍作整理 在以前所用过的程序语言中,在堆上分配对象的代价十分高昂,因此读者自然会觉得Java中所有对象(基本类型除外)都在堆上分配的方式也非常高昂。然而,垃圾回收器对于提高对象的创建速度,却具有明显的效果。听起来很奇怪——存储空间的释放竟然会影响存储空间的分配,但这确实是某些Java虚拟机的工作方式。这也意味着,Java从堆分配空间的速度,可以和其他语言从堆栈上分配空间的速度相媲美。 打个比方,您可以把C++里的堆想象成一个院子,里面每个对象都负责管理自己的地盘。一段时间以后 阅读全文
奇怪的问题
2012-01-18 08:48 by java线程例子, 157 阅读, 0 推荐, 收藏, 编辑
摘要:为什么我的前一篇《一个简单的跨域跨数据库事务处理架构》,我总是打不开,而且是好几台机器上都是这样,难道是有敏感词?编辑可以,就是浏览不行!能正常看的留个信号,谢谢! 阅读全文
一个简单的跨域跨数据库事务处理架构
2012-01-16 22:47 by java线程例子, 2900 阅读, 1 推荐, 收藏, 编辑
摘要:原来只是有点这个想法,怎么去做这个事务,这次给公司做新架构演示,随带就加进去了,居然还成了,还像那么回事:我的做法很简单:自己写了个事务处理类,提供一个静态的启动事务方法,然后就是Commit,Rollback方法,再利用GUID作为事务ID。有事务处理类管理本地数据库链接和远程跨域服务信息,利用这些信息在Commit或者rollback时进行提交或者回滚,在数据库级上并行执行命令,需要对远程跨域提交或者回滚的,结合一个远程事务池、远程事务服务类和远程事务服务调用代理类(就提交和回滚两个方法)进行处理,其中用事务ID贯穿始终。当然,所有的数据访问层,数据库访问层都来由一个事务类参数,没有事务的 阅读全文
《算法导论》第二章 入门
2012-01-16 21:59 by java线程例子, 210 阅读, 0 推荐, 收藏, 编辑
摘要:2.1 Insertion sortPseudocodeis used to specify a given algorithm in English. Issues of data abstraction,modularity, and error handling are often ignored in order to convey the essence of thealgorithm more concisely.伪代码与真实代码的区别只是伪代码更加清晰、简洁。最清晰的表达方式就是直接用英语。为了简洁地表达算法的核心内容,数据抽象、模块化和异常处理等问题常常被忽略。We uselo 阅读全文
多线程中主线程等待所有子线程执行完再继续执行的解决方法
2012-01-15 09:47 by java线程例子, 1432 阅读, 0 推荐, 收藏, 编辑
摘要:最近在做系统架构的时候,一个命令需要同时在多个分布节点上执行命令,但主处理又必须等所有节点执行回来后再继续处理,因此研究了一下多线程,现分享如下:1)第1种方法,微软提供的标准教程:利用 ManualResetEvent和WaitHandle.WaitAll:public class Fibonacci { public Fibonacci(int n, ManualResetEvent doneEvent) { _n = n; _doneEvent = doneEvent; } ... 阅读全文
VS,WCF(DotNet)常见错误处理系列(整理)
2012-01-15 09:14 by java线程例子, 375 阅读, 0 推荐, 收藏, 编辑
摘要:1)由于以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值:这是因为调试时会自动对Local/Watch等窗口里面(或鼠标停留所在)的变量求值,为了防止用户写的程序错误(比如死循环),系统有一个超时限制,如果某个属性的get中做了很复杂的操作(而不是简单地返回一个私有变量的话),就有可能超过这个时间限制(如果strPage很大的话,你的正则运算就很可能会超时)。可以禁用自动求值的功能: 工具 -> 选项 -> 调试 -> 常规 -> 启用属性求值和其他隐式函数调用 去掉前面打勾,不过这样就不会对属性变量自动求值了。 http://msdn.micros 阅读全文
《java编程思想》之java对象的存储
2012-01-14 15:16 by java线程例子, 219 阅读, 0 推荐, 收藏, 编辑
摘要:以下内容摘自《java编程思想》第三版:程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎么分配的呢?有六个不同的地方可以用来存储数据:1、寄存器:这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能再程序中感觉到寄存器存在的迹象。2、堆栈:位于通用RAM(随即访问存储器)中,但通过“堆栈指针”可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那里的内存。这是一种快速有效的分配存储方法,仅次与寄存器。创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以 阅读全文