c++
文章平均质量分 84
小胡_uYou
这个作者很懒,什么都没留下…
展开
-
PV 线程同步和多线程问题
PV操作: 基于信号量的线程同步问题,主要用到P和V操作 信号量s是具有非负整数值的全局变量,它只能由两类特殊的操作来处理。这两种操作分别称为P和V;、 P(s) 如果当s是非0的,那么P将s-1,并且立即返回。如果开始s就是0,那么就挂起这个线程等待。 V(s) 将s加1,如果有线程阻塞在P操原创 2016-05-24 15:51:21 · 1043 阅读 · 0 评论 -
boost::thread线程创建方式总结
最近在做一个消息中间件里面涉及到多线程编程,由于跨平台的原因我采用了boost线程库。在创建线程时遇到了几种线程创建方式现总结如下: 首先看看boost::thread的构造函数吧,boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象; (2)explicit thread(const boost::function0& thre转载 2016-07-19 16:06:04 · 864 阅读 · 0 评论 -
c++异常处理小结
c++语言本身或者标准程序库跑出的所有异常,都派生自基类exception.这是其他数个标准异常的基类,他们共同构成一个类体系。 这些标准异常类别分为三组:(1)语言本身所支持的异常此类异常用以支撑某些语言特性。主要包括:bad_alloc:new操作失败会抛出。bad_cast:执行期间加在一个引用上面的动态性型别转换操作失败时抛出。原创 2016-07-19 11:56:23 · 943 阅读 · 0 评论 -
爬虫实战:提取人和老鼠中RNA表达性较好的RNA序列
最近,一个学医的同学问我说,想找到RNA在人和老鼠身上都显性表达较好的序列(具体 医学用语我不懂),但是序列都太多了,问我能不能编个程序找出表达性较好的序列。然后就开始试着写了。 她告诉我她知道phylonocode上有所有有关人RNA序列和老鼠RNA序列的信息。于是我去下载了,结果发现,其中很重要的一项指标只能在网页上一条条地查看,并不包括在下载的信息中,几万条啊,简直是坑。于是我原创 2016-07-16 15:10:52 · 817 阅读 · 0 评论 -
JD 2016年实习生笔试题
第一次做公司的笔试题,各种不适应。写出程序也只有一个错误的表示,又不能调试,又不知道错误在哪,整个过程很纠结,感觉题目不难,但是限定时间调出来还是不容易,太渣了,后来记录整理下,记在这。第一题:小明想找班级分数最高的同学:输入学生的人数,再输入每位学生的分数和姓名,求最高分的学生姓名。输入:第一行输入正整数N,表示学生人数,接着输入N行,每行格式为:分数 姓名分数为非负整数,且小于等于原创 2016-05-23 17:54:32 · 619 阅读 · 0 评论 -
log4cxx样例
在此记录一个log4cxx样例程序。 先是属性文件properties: log4j.rootLogger=INFO,ca,fa#控制输出到文件log4j.appender.fa=org.apache.log4j.FileAppender#输出到文件output.loglog4j.appender.fa.File=./output.log#以文件追加的方式lo原创 2016-06-19 10:56:27 · 679 阅读 · 0 评论 -
字符串和数字相互转换
在boost中,有一个万能转换工具,它就是boost::lexical_cast,它可以在任何数值间进行转换,当然也包括字符串和数字间的转换。#include #include #include using namespace std;using namespace boost;int main(){ string s="123"; int a=lexical_cast(s原创 2016-07-14 15:08:03 · 641 阅读 · 0 评论 -
c++类成员函数作为回调函数
一直以来都被回调函数的定义给整蒙了。最近又仔细学了会,感觉回调函数,我认为就是将一个函数指针A作为参数传入另外一个函数B,然后在函数B中调用函数A。 普通回调 具体先看一个简单的例子: #include void printWelcome(int len){ printf("welcome -- %d\n", len);原创 2016-06-29 22:44:30 · 23913 阅读 · 3 评论 -
boost asio定时器学习
Asio是基于操作系统提供的异步机制,其主要用于网络编程方面,使用了大量的类和函数封装了socket API。 使用asio不需要编译,但是它依赖于其它一些boost组件,包括boost_system和boost datetime库,用于提供系统错误和时间支持。 同步vs异步 asio的任何操作都需要io_service参与,它是asio的核心类。原创 2016-07-22 22:18:32 · 1143 阅读 · 0 评论 -
zookeeper入门
原博客写的非常好,建议看。 还有关于c API的,在这里。原创 2016-06-28 15:04:35 · 289 阅读 · 0 评论 -
c++ 异常处理
c++ 异常处理设计到三个关键字,分别是throw,try和catch。 程序使用throw抛出异常,将可能出错的程序段放在try中,并用catch进行捕获。 先举个例子:#include #include using namespace std;void test(){ throw "exception"; cout<<"test()"<<e原创 2016-06-10 16:02:38 · 269 阅读 · 0 评论 -
c++ 多态小结
定义: 多态:指相同对象接收到不同消息或者不同的对象接收到相同的消息时产生的不同的动作。 前者,相同的对象接收不同的消息可以看做函数的多态,也就是函数的重载,这种多态是静态的多态,表面上看函数的名称一样,或者由于参数的类型或者个数或者返回值形成的不同的函数重载,在编译器编译的时候,尽管函数名称相同,但是在编译过后会生成不同的函数,这发生在函数运行之前,称之为静态的多态。原创 2016-06-10 10:01:14 · 330 阅读 · 0 评论 -
vs2013专业版密钥
Visual Studio Professional 2013 KEY(密钥): XDM3T-W3T3V-MGJWK-8BFVD-GVPKY亲测可用,另外找到几个其它的,我没有试过,一并摘抄在这。Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9Visual Studio Premium 20转载 2016-06-04 10:12:28 · 1516 阅读 · 0 评论 -
STL迭代器失效
对于许多STL容器,插入或者删除元素都可能带来迭代器失效的问题。 举个例子:#include <iostream>#include <vector>using namespace std;int main(){ vector<int> container; for (int i = 0; i < 10; i++) { container.push_原创 2016-05-21 21:37:43 · 342 阅读 · 0 评论 -
c语言字符串操作小结
c字符串小结原创 2016-05-26 21:14:26 · 385 阅读 · 0 评论 -
用ACE实现生产者-消费者模式
ACE_Task是ACE中的任务或主动对象“处理结构”的基类。ACE使用此类来实现主动对象模式。所有希望成为“主动对象”的对象都必须由此类派生。同时可将它看作是更高级的、更为面向对象的线程。ACE_Task处理的是对象,因此更有利于构造OO程序,产生更好的OO软件,而且,它还包括了一种用于与其他任务通信的易于使用的机制。ACE_Task可用作:更高级的线程(常称其为任务原创 2016-07-21 11:12:49 · 576 阅读 · 0 评论