条件变量入门

January 19, 2017 at 10:14 pm

好久没更了呃。最近终于闲下来瞎看了一些东西,但是目前能单独整理出来的并不多,关于条件变量,算是第2次接触了,但是见到的时候还是一脸蒙蔽,所以这次更详细地学了一下。本来打算再看一下用条件变量来解决生产者消费者问题,研究一下条件变量的实现细节的,但是相关内容比较多,而且条件变量目前用到的并不多,所以暂时不多做展开,就是简单入一下门好了。 本文包含一下几个小节: 1. 条件变量及其初衷 2. 条件变量的使用:以pthread库为例 3. c++11中条件变量的使用 条件变量及其初衷 条件变量(condition variable)是多线程编程同步问题中的一个典型设计,和信号量类似,是建立在底层锁结构之上的一种同步机制。通常来讲,条件变量和信号量可以用来实现相类似的功能,比如解决生产者消费者问题,某种意义上可以说,条件变量是简陋版的信号量。条件变量的设计初衷从这个名字本身就可以很明显地体现出来。在多线程环境中,我们经常会遇到这样的场景:某个线程需要等某个条件成立时才能继续进行,而这个条件的成立过程由其它线程来完成。典型的例子是父线程在创造子线程之后,希望等到“子线程运行结束”这个条件结束,再继续执行之后的代码。问题的代码描述如下: void *child(void *arg) { printf("child\n"); // XXX how to […]

2016->2017

January 1, 2017 at 10:25 am

阿,本来是想趁着2016年末回顾回顾去年做了哪些蠢事的,一不留神就已经2017了额。好像很长一段时间没有博客更新了,前段时间正好服务器到期,想看看能不能换个好一点的上jekyll或者jinja的,最后也没看到比较合适的服务器,也就给续了。wp就wp吧,也凑合着用。 最近记忆力越来越差了,不知道还能不能想起来去年发生了一些什么额。 记得一开始应该是在2015年12月31日晚上和ゴッド去紫金港每人买了60块钱羊肉串,顺便看了看晚会,然后顺势回到寝室,估计就睡了,迎接了2016?想来好像比之今年应该要有趣一些罢。 然后好像就开始瞎几把玩,准备实习什么的,这期间发生了什么,完全断片了,那段时间好像也没什么记录性的东西,只有随手记在2月24号那天吃了顿215元的饭的记录,天呐我那天干了什么?? 接着好像就是实习面试之类的,大致就是N社挂了,A社一直到4月中旬给了个实习offer,然后就屁颠屁颠去A社实习了。实习的话大概就是要干活,有一点工资,每天8点到10点左右回寝室睡觉的样子,确实有很多东西要学的样子,不过好像最后也什么都没学到,7月底也就滚蛋了,也是和自己身体有点关系吧,不过去年一整年都已经处于一个放弃治疗的状态了,不像前年瞎看,哎,看一次就少一个pad阿T_T。今年,好像更严重了...得去看吧... 接着大概就开始找工作,比较残念的是离职前两天正好是T社和B社的面试,麻吉一天都不能推阿,等我离职不好吗!!哦对了还有G社,嗯,挂得很彻底。其实还是算法题吧,算法底子差,也没有抓紧时间准备,自己浪,不怪别人。 最后大概比较起来就是N社和A社的了。其实去N社笔试、面试只是纯粹是打酱油的,当时的一个想法就是给了我也不去吧,呃至于原因,归根结底可能是幼年时期作为一个非RMB梦幻玩家只能玩到7级还是20级就没法继续玩了之类的?这种用钱买时间的游戏有什么意思阿,什么我都已经花钱买游戏了你还要我花时间玩[doge]最后又觉得自己还是有半颗心在游戏这的,A社的某昵称其实也是向66大神致敬,没记错的话,高中的时候愿望墙什么的贴的大概就是“想成为和66一样的人”吧,接触66,也是第一次接触RM,第一次接触Ruby,天呐我竟然在2007年就开始写Ruby了,那岂不是10年了?为什么我到现在还不会写啊啊啊。嘛回过头想一想的话自己对于游戏制作的热情远没有总督大人强。当初上大英课的时候总督大人就开始给我安利braid了,我那时候估计在玩QQ军旗和魔塔?这个回忆有点远了,那时玩了braid的感想就是天呐竟然还有这么牛逼的游戏,我艹好叼。当时对indie的理解也是完全错误,以为indie就是完完全全一个人搞出来的,就觉得我这辈子是达不到这种高度了。虽然之后断断续续有重启RM的想法,最后也是没有后续了,“紫苑工作室倾情汉化制作”的声音也再没怎么听过,想来现在我也可以当半个汉化了,有人要招吗,上过大学的会码代码的那种? 在我什么都没干水着大学四年的时候,总督大人已经开发了ZJU大逃亡以及后续某个不知道是不是坑了的游戏了。相比起来,我对游戏制作的热爱,倒不如说只是对游戏本身的热爱,所谓制作,无非就是一股脑热,觉得“会做游戏的话看起来很牛逼”阿这种感觉吧。相比起来,我也完全没有勇气去那种名不见经传的indie工作室,甚至是有些名气的我也一点都不敢去,N社只是名气比较大罢了,但我心中向往的,如果有的话,也并不是这种吧。 阿,一不留神对游戏好像大谈其谈了,看来不去N社果然是个错误的决定orz。无论怎么说最后还是选择了A社,说信仰,我是没有的,其实好像真正找工作之前并没有想太多,觉得哪里都可以阿,毕竟这么弱,能混口饭吃就可以了。后来想的有点多,觉得是不是找工作还是要找个喜欢的啥的?不过感觉大学四年一直学的都是偏底层的东西,虽然也没学到多少,但是对游戏这方面真的是完全没有学阿,果然还是求知欲之类的在作祟吧,总之先看看吧,我就是这么任性。的煞笔。做DB这种底层的东西也算是修生养性的一环吧,一个BUG查上一个月什么的,没有比这个更烦躁的事情了,之前写无锁小程序的时候,多线程在没有锁的情况下要查BUG,真的是,好开心阿...嗯gdb是神器,其它不说了。 嘛,找完工作之后就是写毕设了,嗯,到现在还没写完,感觉肯定要延毕了,延毕倒还好,求不要让我肄业阿,多烧香,多烧香。 感觉接下来才是正文,可是好像前面撸的太多了已经写不动了... 整个2016年,有很多遗憾,也有很多收获吧。见到了好多老同学,也认识了很多新朋友,不论是现实中,还是网络上。 去西溪屁颠屁颠拿了N1证书之后,日语算是正式入门了,也开始尝试做一些简单的翻译,云音乐上也撸了几发(云音乐日语歌翻译质量实在是,我还是想吐槽那个把淋しい翻译成淋湿的煞笔),查了挺多日文的wiki和网站,在B站上发发野生字幕(嗯,ハーバード翻成ハンバーガー的估计也只有我了),看看生肉(最多只能看懂50%吧,不是脑残剧的话)也玩了很多日版的游戏(由于游戏大多有文字所以撸起来还是可以接受的,其中感慨最深的大概是「英雄伝説6~空の軌跡」吧,六十多小时下来,エステル那句「あんですって」实在是,嘛,神作不做过多评价了),也成功参加了某日企的面试(嗯面试敬语表达无力,然而日本面试官人挺好的,完全不care,倒是有个中国的面试官,无论是英语和日语都一直在碾压我,不过我的普通话比你漂唇阿>_"啊啊,撸底层代码也是一样无趣阿"->"啊啊,撸代码真的是好没意思的事情阿,选错专业啦投错胎阿夭寿啊"的感觉。不过考虑到大学四年浪过去了,研究生两年半玩过去了,合在一起学习的时间其实并不多,对计算机行业,或者说码农行业其实还谈不上认识,所以有趣无趣,也无从谈起。我这人的性格就是无论什么东西,只要一段时间不接触,就会完全失去对它的兴趣,学习如此、游戏也是如此,哦天呐对吃的好像不是这样,一段时间不吃就会很想吃的东西有好多啊啊啊啊啊 运动方面去年大概是好像完全没有怎么运动,自从失去了亚峰(滑稽)好像基本上就不怎么打桌球了,所以水平也是完全没有提高,倒不如说越来越菜了,话说桌球本身也不怎么锻炼身体把,看看丁俊晖的体型,还有胖胖的李。跑步之类的也几乎没有,游泳也只是夏天去了不到10次吧,羽毛球实在是不想被虐阿,不想玩。归结起来就是完全没有运动。而且最近胖了一些之后一直没有瘦下去阿,那些一直安慰我说会瘦下去的出来直播吃翔阿啊啊啊啊。NBA的话本来不打算看了,去年上半年窝火实在是太惨了,不过看到下半年窝火新教练新打法如此威武,实在是忍不住躲在被窝里偷偷地笑了起来。嘛,今年一如既往是窝火脑残伪球迷,希望今年季后赛可以更进一步吧,窝火战绩好了之后某N社新闻里黑登哥的也越来越少了,咦,小短裙最近都开始匿名了(笑)。嘛,身体是革命的本钱,新年好好锻炼好好看病把。 选择待在杭州,一方面是想去其他地方可是都被刷了,另一方面是再也找不到当初在北京实习时那个便宜的房租了把,当时还觉着略贵呢,现在找遍杭州也找不到了阿,嘛还有就是懒得换地方阿,杭州待了6年多我都不熟(虽然变化确实很大啦),去其他地方难度太大了。而且离家相对近一点吧,求尽快开通杭温一小时热线阿。悲伤的是娘娘走了,现在文哥也带着它的xiaoyizi跑了,乙陆也不在,亚峰也留在上海,杭州能玩到床上(二滑稽)的人越来越少了。呆在这里,也只能是一直一个人吧,希望可以碰到更多的小伙伴们。 就这样吧 2017,敬请期待吧。