lower_bound在多线程下容易出问题

30 5 月, 2007

lower_bound方法一般应用于排序的系列,比如vector、list等,在插入新的记录前通过这个方法找到插入点,当找不到插入点时追加到最后即可,由此可以生成排序的系列。同样使用这个方法可以找到系列中的某一对象,binary_search方法就是使用的这个方法。

今天我在测试一个项目时发现一个奇怪的现象,就是在多线程情况下通过这个方法查找某一对象时,系列中的某一个对象的值会发生变化,而变化的值有可能还会变成其它值,结果将会导致已排序的系列变成无序,后果可想而知。

假设系列中的每个元素是下面的结构:
typedef struct tagMbParam
{
 std::string strParamName;
 unsigned char nType;
 unsigned short nPduAddr;
} MB_PARAM, *PMB_PARAM;

我们给lower_bound指定一个排序函数,按strParamName从小到大排序:
bool MBPSortFun(MB_PARAM first, MB_PARAM second)
{
 if (first.strParamName < second.strParamName)
 {
  return true;
 }
 else
 {
  return false;
 }
}

我们用下面的方法查找某一对象:
 MB_PARAM mb;
 mb.strParamName = "要查找对象对应的值";
 系列类型::iterator it = lower_bound(系列.begin(), 系列.end(), mb, MBPSortFun);

在单线程时没有问题,在多线程情况下,系统中某一个元素中的strParamName会发生变化,导致问题出现。

我怀疑是不是lower_bound不支持多线程或支持得不够好,因此在该函数的调用前后加上临界区,问题不再出现:
 EnterCriticalSection(&s_csParam);
 系列类型::iterator it = lower_bound(系列.begin(), 系列.end(), mb, MBPSortFun);
 LeaveCriticalSection(&s_csParam);

北京印象。。。

29 5 月, 2007

写标题占位置

我爱小花花!!!

11 5 月, 2007

发点我拍的小花花,真的很米哦!!!

 

最近比较忙

11 5 月, 2007

最近父母过来了,玩得很开心,也很累,上班有点打瞌睡。17号去北京,21号从北京他们各人回自己的家,这样就结束了他们快乐的上海北京行!!!我们也将恢复简单的生活。

传点照片来大家看看!!

 

最近有点烦

24 4 月, 2007

最近有点烦,老公也老惹我,公司的破事情一大对,帮同事忙,最烦的是还要跟领导交流工资什么的事情,烦透了!希望这样的日子快点结束

关于网线线序

18 4 月, 2007

RJ45跳线由标准的多股线缆和连接硬件制作而成,所有跳线均符合CAT 5E类标准。实现了通讯设备模块化,使得配线架之间的快速互连,具有极大的灵活性,并具备多种长度、颜色可供选择。并且采用50μ英寸镀金水晶头,确保产品的优异性能,渐变型受力原理的灌胶护套,防滑抗拉,保证了一定的弯曲半径。

10M双绞线接头的标准接法
线材要求CAT-3(3类线)

号码
信号定义
线对颜色
1
TX+
橙白
2
TX-
3
RX+
绿白
4
未用
5
未用
蓝白
6
RX-
绿
7
未用
棕白
8
未用

100M双绞线接头的标准接法
线材要求CAT-5(5类线),接头接法与10M完全兼容。

号码
信号定义
线对颜色
1
TX+
橙白
2
TX-
3
RX+
绿白
4
未用
5
未用
蓝白
6
RX-
绿
7
未用
棕白
8
未用

1000M双绞线接头的标准接法
线材要求CAT-5e(5类增强线,俗称超五类),接头接法与10M/100M完全兼容。

号码
信号定义
线对颜色
1
BI_DA+
橙白
2
BI_DA-
3
BI_DB+
绿白
4
BI_DC+
5
BI_DC-
蓝白
6
BI_DB-
绿
7
BI_DD+
棕白
8
BI_DD-

以上表格的线序是568B线序,对应的568A线序是“绿白 绿 橙白 蓝 蓝白 橙 棕白 棕”,对于10M/100M来说就是把TX+与RX+对调、TX-与RX-对调。

常规网线的线序两头都是568B或568A。

交叉网线(直接连接两台电脑的网线)则一头是568B另一头是568A。

新买了柯达的C743数码相机

12 4 月, 2007

原来用的是三星S600数码相机,愚人节那天不小心从桌子上掉落摔歪了镜头。由于过了保修期,如果找维修点修的话所花的钱完全可以买一个新的了。后来自亲动手维修,镜头是修好了(维修点肯定会要求更换镜头),但安装过程中主板上一个插槽接触不好,多试几下就报废了。后来手动焊接排线来替代插槽的功能,由于排线太密不好焊,结果相机还是没法用。不过能从别人那拿到一个完好的主板还是能修好的,期待着能从网上或维修点拿到主板。

经过郑重考虑,决定再买一个1000元左右的家用相机来使用。老同事建议买佳能或尼康,花了一两天时间在网上了解这两个牌子的相机,看看别人的评价。先后对尼康的L11、L10、L3、L2,佳能的C430、C450、C540、C550感兴趣。本打算买佳能的C540,论坛中说已经停产,有人推荐柯达的C653。然后去看了一下柯达牌子的东西,了解了C653、C543、C743(相关论坛中关村在线价格查询频道)。到新蛋中国上去看有没有相关的产品买,结果发现柯达的C743有货,裸机卖价是1099,跟中关村在线价格查询频道报的价1020相差不大,本着“抵制日货”的想法,最后决定买柯达的牌子,在新蛋中国网上直接订购。昨天下的单,使用Paypal信用卡支付,今天上午就拿到货,试机感觉还可以。

希望我的老公也能在我怀孕和生产时给我和BB写日记

3 4 月, 2007

 

摘自篱笆一老公给他老婆生产时写的日记,好感动,也拿过来让老公看看!我看后感动得哭得淅沥哗啦的!

我们的纪念日
06年10月24日----我们一个新的纪念日!
忍不住想回忆宝贝女儿生产的过程,我家小宝是站在妈妈的角度,我就从爸爸的角度来回忆:
19号是我家小宝39周的检查日,前一天晚上她就上吐下泄,把我紧张死了,在这关键时刻,怕她会顶不住,这样折腾完人会很虚弱的,也怕她直接把我家皓子吐出来或拉出来:)呵呵!19日早上10点多,她给我电话,说有宫缩,并要住院观察了,听了以后心情紧张,兴奋,放心。紧张是因为上吐下泻,心疼她;兴奋是因为皓子快出来了,初为人父的感觉(相信每位父亲都有所体会);放心是因为住在医院,医疗条件比家里好很多,突然要生也不会措手不及。晚上下班急匆匆的跑到医院,看见小宝躺在病床上,精神状态还是很不错的!放心很多!晚上走的时候,突然觉得很舍不得,小宝从来没有一个人住在医院里过,不知道她睡的着嘛,睡的习惯嘛,紧紧的抱着她,告诉她不要害怕。
20号-22号一切正常,皓子太平,小宝腹泻也好了,期间通过摆事实,讲道理作出了重大决策:25日剖宫产。然后联系了床位,医生,手术时间等,一切安排妥当,万事具备,只差皓子!
23号白天一切正常,晚上去看小宝,她说腰酸,是生产的预兆,其实蛮担心半夜里生的,夜里医生都想太太平平睡觉,弄个人生孩子,肯定心情烦躁。半夜里12点,手机震动起来,我从床上弹起,是小宝的,什么事,生了?稳定一下情绪:喂,小宝,她说开始宫缩了,十分钟一次,没关系,要到三分钟一次才可能生。听她情绪不错,放心了一点,硬是不要我过去!接下来我就迷迷糊糊得睡,做梦,梦到很多。。。还好没有在迷迷糊糊中就做了爸爸。心里想看来是等不到25号了,顺其自然吧!
24号一早,匆匆赶去医院,哦,还没有生,正赶上医生查房,就是公利医院著名的丁医生,呵呵,做了一通思想工作,我家小宝就跟着她去产房做检查了。大约20分钟的样子,小宝出来了,“怎么样?”我着急得问,获悉身体条件良好,完全可以顺产。其实我最担心的是她精神得承受,怕她生到一半,坚持不了,再剖,吃两次苦!(那不等于生双胞胎了?)看她精神满满的样子,我支持她!小宝整理好东西,和我说,我进去了!那一刻,真觉得她好勇敢!好棒!我抱紧她,在她耳边轻轻得说:宝贝,加油!老公支持你!你是最勇敢的!在她走进产房的一瞬间,我向她竖起大拇指!希望能给她一些力量!想过陪她一起进去,在她旁边握着她的手,鼓励她!最终因为她的反对只能作罢。站在产房门口默默的想着陪她进去的情景,很多人说男人看到老婆生孩子会流泪,如果我进去会吗?不知道,扪心自问,也许会的。期间去了一次公司(敬业吧?哈哈!)交接了一下工作,打车回医院。丈母娘和爸妈都在,表情轻松,我蛮紧张的,一点也不想坐下,在产房门口来回踱步,虽然没有什么用,但那时觉得走来走去比坐着舒服。小宝不定时的会给我发消息告诉我情况,从医生那里也获悉了一点,进展顺利,老天保佑!长辈在讨论生男生女,他们觉得肯定是个男孩,而我从一开始就觉得是个小女孩,就是感觉!那一刻我根本没有想是男是女,只祈祷母子平安!中午去小饭店随便吃了些什么,刚坐下来,电话响了!小宝的,只听见她告诉我很痛,坚持不了,随后挂机!我慌了,扔下筷子,飞奔去医院,一路上告诉自己,别慌,想着各种情况如何应对,情绪稳定一点了。跑到医院,问了医生,说情况很好,马上可以生了!别急!哦!这样啊,呵呵,虚惊一场。再去吃饭,吃了两口,实在没有胃口,还是在产房门口呆着安心,如果可以宝贝我愿意帮你疼。等待。。。。。漫长的等待。。。。(其实也就一个多小时)终于手机响了,听到了熟悉的声音:“老公,生完了,如你所愿是个妹妹!母女平安!”呵呵,那一刻的心情是一块大石落地,开心中夹杂着一丝遗憾(其实我还是更喜欢男孩多一点,但这一丝遗憾只维持了2秒,因为我一直觉得会是个女孩,所以2秒以后没有一点遗憾了)我在电话里告诉我亲爱的小宝,你真棒!我为你感到骄傲!真的!我觉得母亲真的太伟大了!还要在里面观察两小时,其实在放松的状态,两个小时好慢!和小宝打了电话,听到了我们家宝贝女儿的嘹亮哭声!真响!但好亲切,一点没有觉得吵!呵呵!
3点半我终于看到了我家小宝和皓子,给了小宝一个最温暖的拥抱,亲亲她!告诉她你辛苦了,老公爱你!抱抱我的女儿,第一次亲亲她!觉得她好小,但很干净,眼线很长,脑门蛮宽的,鼻梁蛮高的,比较像我!呵呵!爸爸等了你280天,你终于来了!
以上就是我真实的心情!如假包换!
女儿,感谢你给了爸爸这么一个纪念日!爸爸爱你!亲亲!


伤心的事情。。。。

3 4 月, 2007

            星期天晚上回到家我们开心的打算给手表拍个照片,老公正摆着手表,我把照相机开着递给老公,老公顺手放桌上,袖子一动,照相机给摔地上了,呜呜呜,我心爱的相机啊,镜头给歪了,,,完了不能动了,坏了,怎么半啊,,,,拆,我找来工具拆,老公也有点郁闷,我还吵了他几句,我看我不能拆也就没有拆了,找修的地方吧,上网查,结果好贵啊,老公就自己拆了。

     老公细心的拆,终于几个小时拆出来了,也把摔歪的镜头修好了,说是摔托疚了,这下开始安装,镜头怎么也装不活,这下装不回去了,老公一直弄都到晚上12点了,我心疼的让他不要弄了,明天再弄吧,心想相机坏了,人可别累坏了,于是老公也乖乖的休息了,睡觉前也上网查查找找方法,听说他到1点过才睡觉,佩服一下老公的专研精神,还有好学精神,我要有他一半的精神我就非常了不起了,这个精神是我一直佩服老公的!!!

哈哈,下班了,明天继续写后续!!!

 

[转帖]数码相机变焦镜头故障维修

2 4 月, 2007

数码相机已成为当今最为流行的计算机外设。而变焦镜头状况的好坏对于数码相机的拍摄工作是至关重要的,如果变焦镜头出现故障轻则会使数码相机不能拍摄出应有效果,重则会使其停止工作。下面就为大家介绍一下变焦镜头故障的维修。

变焦镜头的类型很多,但总的来说,它们都有两组以上的移动镜组,变焦镜筒壁的螺旋槽内有滚柱或滑块支撑移动镜组。然而不同品牌的镜头在结构设计方面却不尽相同,这些镜头或带有可拆换的接口,或带有与镜头一体的特定连接座。对于后一种情况,尽管与采用独立的光学系统相似,却有多种不同的结构设计。变焦镜头可采用独立的变焦环,也可采用一体化设计,其复杂程度根据型号有所不同。一体化型的对焦筒带有轴向槽,只要卸下橡胶套环便可看到滑块。从轴向槽内取出一两个滑块后,就可拧下整个前部组件。

镜头的近摄功能并不会增加镜头的复杂程度,它通常只是变焦功能的扩展。如果变焦范围的两端都调试准确,且机构工作正常,那么近摄功能也不会有什么问题。

处理变焦镜头需耐心细致。因为光学及机械部件在操作中可能被污染。变焦筒及镜组的滑动接触部件配合得十分严密。极细小的尘埃和脏物都会破坏变焦时运动的稳定平滑。必须事先清洁工作台,并在放置零部件处垫一层纸巾。另外,还要准备好纸和笔,以便随时记录关键环节事项。

1.变焦镜头的常见故障

光阑叶片被油污沾染是常见的故障之一。通常变焦镜头的光学结构是:后镜组位于光阑后方,而两个变焦组位于光阑前方,光阑是静止的。在有的照相机结构中,光阑是移动镜组的一部分,如要拆卸光阑叶片,就得取出整个镜组。

如果变焦机构的运动相当平滑,且无明显的自行滑移,只是感觉不太均匀,则不必对它进行修复,因为一般人想要对此进行改善是不太可能的,相反只会使情况变得更糟糕。早期的一些变焦镜头带有可调节的摩擦垫,但调整的结果往往导致变焦运动变得不平滑。但是, 如果感觉到机构中有沙粒或是有明显的自动滑移,通过仔细的清洁、重新添加润滑油脂、固紧螺钉或调换滚筒及滑块可以解决问题。彻底清洁机构的工作量非常大,要卸下所有的运动部件、清除原有的油脂(这是去除沙粒的唯一途径),然后重新添加润滑油脂,进行安装并调试。

绝大多数变焦镜头都有不同程度的晃动。可抓住镜头,前后拉伸并旋转,进行测试。同时镜头也要能有些滑移。镜头的少量晃动是允许的,如果滑移或晃动过多,则是不正常的。质量越高的镜头,晃动越小。如果不能确定晃动是否属于正常范围,那么只能将镜头再使用、观察一段时间。如镜头内有螺钉松动,注意及时地进行修理,否则螺钉脱落,会将运动机构卡住。

2.外力损伤故障

变焦镜头受外力的损害,容易导致变焦镜筒扭曲、塑料滑块断裂或螺旋槽凹陷。如果发现变焦机构过紧或被卡住,很可能就是前部受力使得螺旋槽被挤压。如情况不严重,可予以修复。取下外卡环和镜筒,卸下一个塑料滑块,然后将它沿槽滑动,这样很快就能找到槽的变形部位。再用一塑料楔插入该部分槽中进行矫正,矫正过程中要随时进行调试、检查。注意不要使用金属棒或其它尖锐的物体,以免损坏槽内的滑动表面。如槽口被扩展过宽,则机构可能在其它部位被卡住。

塑料滑块及滚柱会因受力而断裂。测试方法是:抓住镜头进行前后推拉,若有过量滑移(1mm以上),则可能是滚柱或滑块折断。此外,机构内的断裂料屑也会限制变焦,因此必须彻底清除。更换折断滚柱并不困难。

金属滚柱被撞击后,可能会嵌入槽壁,使变焦过程在某一点变得明显不均匀,也有可能卡住机构。突起周围的不平处可用锉刀修磨,但对突起本身不必再进行处理,因为运动中有些小小的不均匀并无大碍,修磨后必须清除所有的碎屑。

如果变焦镜筒的任一部分被损坏,可调换新的镜筒,但变焦机构通常价格十分昂贵,而且调换也十分繁琐。  

3.螺钉松动故障
变焦镜头的另一个常见故障是螺钉松动,使镜头晃动不能移动。如果转动对焦环及变焦环没有任何效果,可取下橡胶套圈,在环的周围有些固定螺钉,将它们拧紧即可。

螺钉经常松动的另一个部位在镜头基部。许多镜头在镜筒的两部分交接处可调,通常椭圆孔用于调整总的对焦距离。如果这些调节螺钉松动,会导致镜头晃动或相片离焦。解决办法是:松开套筒上的3-4颗普通螺钉可固定螺钉,取下套筒。在大多数设计中,松动的螺钉即位于套筒下,两部分镜筒之间可能还有些垫圈。重新装配这两部分,并拧紧螺钉即可。

4.防止螺纹的磨损

变焦镜头的螺纹螺距很深,剖面成方形或梯形。螺纹是许多对焦机构的重要组成部分,读者可以找一个旧镜头,拆开后清洁其螺纹,并用放大镜仔细检查,然后重新组装好。分离螺纹前必须作好记号,装配时将该标记作为螺纹的起始点。

只有当两部分镜筒吻合后,螺纹才能工作,查看镜筒两测可看出两部分是否平行。注意对螺纹不能过分用力,否则将磨损螺纹,使两部分镜筒无法啮合。处理螺纹时,一定要做到动作轻柔,而且有耐心。

5.焦距调整方法

应在变焦范围的两端调整焦距。将镜头装在照相机机身上,通过取景器观察远处的物体,并使其在无穷远处调焦清晰。在广角端调整后镜组或者镜筒的总长,然后在远摄端转动调节前镜组。根据不同镜头变焦范围的不同,需反复调整数次