内存:
1.能不用new的情况就尽量不用,可以直接申请大小char a[20];或者用智能指针,特别在线程中不要用,我用了new char[16] 也正确释放了空间;
可是线程堆栈却满了;
线程:
1.线程函数设计要独立,不要和类有过多联系;要把线程函数独立于类之外设计成全局的,或者static;
2.关于向线程中传输指针,一定要注意,
指针指向的结构体,可能再外部函数调用过后就销毁了,指针指向就为空了;
解决办法:可以再外部定义一个结构体,结构体传入进来后,如果线程执行时间过长,外部调用处,结构体指向的对象可能销毁;
那么直接在线程内部定义局部变量,将结构体指针指向的内容拷贝进来;
3.线程启动后就是一个完全独立的模块,在设计的时候要减少线程对外部的依赖;
4.线程中使用的数据:
(1) 局部变量
(2)传入的结构体指针,不过要保证线程运作的时候,指针指向的对象不会销毁,否则将结构体中的数据拷贝到局部变量中
(3)线程可以使用全局变量或者static
环境:
1.当初在控制台下尝试发空包时候没有任何问题,结果一移动到EBS里面就各种问题;
一定要放到你运行的环境下试试,你以为不会出问题的恰恰往往会出问题,试过才知道;