随笔 - 13  文章 - 0 评论 - 98 trackbacks - 0
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

昵称:hbfly
园龄:5年6个月
粉丝:0
关注:0

搜索

 
 

常用链接

随笔分类

随笔档案

最新评论

阅读排行榜

评论排行榜

推荐排行榜

线程同步的方式和机制

临界区、互斥区、事件、信号量四种方式
临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)的区别
1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。
2、互斥量:采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享
3、信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目
4、事 件: 通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作

 

区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
      工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。
---------------------------------
   1.如果一个后花园只种蔬菜类,那么就用简单工厂就可以了.
   2.如果后花园蔬菜品种繁多.得用工厂方法才可以,把共有的东西抽象出来.
   3.如果要扩大后花园的规模,比如一个在北方,一个在南方,这样工厂方法就无法实现了,就应当用抽象工厂,把各种各样的植物,又组成一个后花园.
所以我个人认为,简单工厂是一个工厂只生产一类的产品,面对的是具体的类,工厂方法是可以生产不同的产品,把公共的方法抽象出来,然后进行创建各种各样的产品.抽象工厂把几种产品划出共同的东西,把相互依赖的对象抽象出来,只要实现这些接口就可以得到不同的产品.

posted @ 2011-04-26 14:29 hbfly 阅读(12) 评论(2) 编辑

1)写一个比较复杂的文本处理工具,不要妄图代码可以处理所有情况,一定要一种ruler.txt的机制,里面有对应的 a强制替换成 b, 甚至还要有加载特定的ruler.txt的机制

 

2) 

 

posted @ 2010-10-25 15:06 hbfly 阅读(31) 评论(0) 编辑
 

最近的工作用到创建wave文件,把方法share出来

现在只是能work但还有很大的缺陷

1) 正确的写入方法是开辟一块buffer,然后一个线程写入,一个读。或者用stream

但没弄出来开,着急赶工就采用了逐秒写入这种笨方法,

考虑过用内存映射文件,也卡住了,等明天贴上

 

C# create wave

 

 

 

posted @ 2009-04-28 23:00 hbfly 阅读(612) 评论(1) 编辑
中国人说:第一组是老鼠和牛.老鼠代表智慧,牛代表勤奋.智慧和勤奋一定要紧紧结合在一起.如果光有智慧,不勤奋,那就变成小聪明;而光是勤奋,不动脑筋,那就变成愚蠢.这两者一定要结合.这是祖先对我们第一组的期望和要求,也是最重要的一组. 第二组是老虎和兔子.老虎代表勇猛,兔子代表谨慎.勇猛和谨慎一定要紧紧结合在一起才能作到胆大心细.如果勇猛离开了谨慎,就变成了鲁莽,而没了勇猛,就变成了胆怯.这一组也非常重要,所以,防在第二位置上.中国人看者这些贵族,补上一句:当我们表现出谨慎的时候,千万不要以为中国人没有勇敢的一面. 看着大家陷入沉思,中国人继续说:第三组是龙和蛇,龙代表猛,蛇代表柔韧.所谓刚者易折,太刚了容易折断,但是,如果只有柔的一面就易失去主见,所以,刚柔并济是我们的祖训. 接下来是马和羊,马代表勇往直前,羊代表和顺.如果一个人只顾自己直奔目标,不顾及周围环境,必然会和周围不断磕碰,最后不见得能达到目标.但是,一个人光顾及和顺,他可能连方向都没有了.所以,勇往直前的秉性,一定要和和顺紧紧结合在一起,这是祖先对我们的第四组期望.   再接下来是猴子和鸡.猴子代表灵活,鸡定时打鸣,代表恒定.灵活和恒定一定要紧紧结合在一起.如果你光灵活,没有恒定,再好的政策也得不到收获.一方面具有稳定性,保持整体和谐和秩序,另一方面有能在变通中前进,这才是最根本的要旨. 最后是狗和猪.狗代表忠诚,猪代表随和.如果一个人太忠诚,不懂得随和,就会排斥他人.反过来,一个人太随和,没有忠诚,这个人就失去原则.无论是对一个民族的忠诚,还是对自己理想的忠诚,一定要与随和紧紧结合在一起,这样才容易保持内心深处的平衡.
posted @ 2009-02-03 15:34 hbfly 阅读(179) 评论(0) 编辑

 

没抓住主线,请指教。

 

Code
posted @ 2008-12-02 15:01 hbfly 阅读(161) 评论(2) 编辑
摘要: 原题:用递归求第10个数,它等于前2数之和,如{1,1,2,3,5}[代码]阅读全文
posted @ 2008-10-14 11:09 hbfly 阅读(131) 评论(0) 编辑
摘要: [代码]阅读全文
posted @ 2008-09-11 17:33 hbfly 阅读(234) 评论(4) 编辑
摘要: 可能要用到。[代码]阅读全文
posted @ 2008-08-29 11:38 hbfly 阅读(925) 评论(0) 编辑
摘要: 最近大家的工资到手,人人都吃了一惊,怎么发到手里的钱比以前还少了呢?前段时间公司大张旗鼓的给每个人涨了工资,个人所得税得起征点也提高了,怎么钱越来越少了呢?要弄明白这里面的道道,得仔细研究我们的工资条。    事实上,国/家真正从个人收走的钱,个人所得税制是一个小头,真正的大头是各类以保障民生为名义的社保。而这些社保里面,个人缴纳的又是小部分,真正的大头在于单位缴纳的那部分。以下是上海市的规定的社...阅读全文
posted @ 2008-08-07 17:27 hbfly 阅读(150) 评论(2) 编辑
摘要: 反射的性能: 使用反射来调用类型或者触发方法,或者访问一个字段或者属性时clr 需 要做更多的工作:校验参数,检查权限等等,所以速度是非常慢的。所以尽量不要使用反射进行编程,对于打算编写一个动态构造类型(晚绑定)的应用程序,可以采取以下的几种方式进行代替: 1. 通过类的继承关系。让该类型从一个编译时可知的基础类型派生出来,在运行时生成该类 型的一个实例,将对其的引用放到其基础类型的一个变量中,然...阅读全文
posted @ 2008-08-07 15:56 hbfly 阅读(480) 评论(3) 编辑