自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 webstorm添加jQurey和EXT提示

webstorm里

2014-05-09 14:12:37 1423

原创 完成端口TCP服务端开发关键问题小结

1,不要认为一次能读到一个完整的包,甚至包头都不要希望,下次再接收到的此socket数据的线程不一定是当前线程,不过可以在的单句柄接口封装这些信息。2,建自己的收发队列来缓冲,这样可以减少服务端资源不足客户端又连续发包时崩溃的可能。3,业务与网络驾构之间提供简单的接口,不要有过多耦合,以后两个方面都可能会变动。

2014-03-06 09:09:09 724

原创 自旋锁的应用条件

自旋锁的原理: 自旋锁与普通的锁以及信号量不同,使用普通的锁和信号量在访问资源必须等待的时候操作系统会先把等待的线程加入相应的锁的链表里,然后挂起该线程,挂起后直到有线程释放了对应的锁才有机会获得CPU。而自旋锁则不同,它在等待锁时会循环检测锁是否开启,这对于单处理器来说是浪费CPU,但是在多处理器环境下,不同cpu上的线程同时操作一段临界资源,如果操作只需要很短的时间,(比如改变一个变量的值

2011-11-29 20:42:29 432

原创 好像又是面试题 VS2008与GCC4.4.4下结果不一样

#include using namespace std;void func(int a, int b){ cout }int main(){ int x = 2; func(x++,x);          x=2; func(x,x++);      }VS2008下输出:a: 2 b: 2a: 2 b: 2 GCC4.4.4

2011-11-26 20:12:35 268

原创 C在linux内核中的使用

最近想对linux内核有所了解,看到一些有趣的技巧,从书上摘录下来供以后查阅 这个语句只会执行一次,如果写成或者在if()DUMP_WRITE(addr, nr);else        dosomething();中无法编译。另外,对于列表的操作使用偏移可以让列表统一化(list.h)表的结构 内核队列的结构(mm.h)struct page {

2011-11-20 23:26:07 411

原创 【面试题】海量数据 无符号整型

题:10亿个32位的无符号整数,里面有少量重复的,用最快的方法找出重复的数。 当时对数据不太敏感,认为一般的内存无法保存2^32位,后来突然想起来2^32位只需要战用256M的内存。解法如下:分配一个2^32bit的位数组,32位的无符号数的按大小正好装入这个位数组中,初始化数组全0,扫描10亿个数据,检查其对应的位是否为1,如果为1则是重复的,如果为0,将其置1,继续扫描下一个数。

2011-11-20 22:33:07 445

原创 位域的问题[面试题]

在小端计算机中下面程序的输出typedef struct bitstruct{    int b1:5;    int :2;    int b2:2;} bitstruct;void main(){    bitstruct b;    memcpy(&b, "EMC EXAMINATION", sizeof(b));    printf("%d,\n

2011-10-21 14:59:18 576

原创 大端与小端的原因[面试题]

本文属于猜想 在计算机界最先出现的是大端,权值最大的位放在前面,这与人的正常思维一致,但是在类型转型(如int 转换成short int 或char)时比较麻烦,后来一些聪明的工程师发现采用小端模式可以非常完美的解决这一问题,转换时不需要计算转换后的地址偏移,直接拿之前的地址读取指定的字节数就可以了,这个时候PC机才刚刚起步,所以小端模式大量的应用于之后的芯片,而早期的计算机多是服务器,为

2011-10-21 14:32:48 808

原创 非法指针与类成员[面试题]

class A{    public :    void print()     {            printf("hello!");     }   int i;    int j}void main(){   A *a = (A *)NULL;    a->print();               //能正确编译并正常执行,因为编

2011-10-21 13:56:38 597

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除