总结:写代码和调试的方法与心得
(2015-06-21 09:33:06)
标签:
股票 |
分类: 设计网络库 |
一、写代码
1)理清整个代码的逻辑,
2)就像自己用汉字一样,将将整个代码的逻辑写出来,最好一气呵成,写完了一个完整的逻辑块以后再去调试
3)每写模块,尽量带一个值进去检查,有没有逻辑的错误
4)
二、调试
1)
如何进行调试:
1)保证所有的线程都在运行
2)上锁和不上锁的效率比较
??为什么不出现竞争的情况呢
答:没有在线程函数中使用sleep函数,因为计算执行的速度是非常快的,如果创建第一个线程的时候没有等待sleep一段时间,那么可能还没创建第二个线程的时候,计算就已经达到了
写代码,要一气呵成:调试,像解绳子一样,一个一个一步一步来解
写完代码后一定要重新看一遍,看有没有错误,最好带一个值进去验证一下
thread.push_back(new Thread(fun,false));老是忘记了里面的false
为什么有时候会出现没打印出来的情况呢?
猜:可能是创建线程不成功,,,出错情况的处理
调试的方法:
1)测试代码,这个很重要
2)缩小范围调试法
3)单步执行调试
4)汇编
5)从原理的方面去理解和解决问题
为什么broadcast不能唤醒所有的线程呢?
防止死锁
友元函数
前向声明模板类
类内定义,要注意前向声明
为什么使用用一般函数作为类的友元函数,不能访问类的成员呢
多线程的调试方法:
return epoll_wait(m_epollfd,m_events,m_max_event_num+1,millseconds);
当millseconds等-1的时候,一直等待下去
两种地址的区别