• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
The Path of Growth
All Programers!
博客园    首页    新随笔    联系   管理    订阅  订阅
上一页 1 2
2011年10月2日
C/C++四种退出线程的方法
摘要: 退出线程可以有四种方法:1.线程函数的return返回(最好这样): 其中用线程函数的return返回, 而终止线程是最安全的, 在线程函数return返回后, 会清理函数内申请的类对象, 即调用这些对象的析构函数. 然后会自动调用 _endthreadex()函数来清理 _beginthreadex(...)函数申请的资源(主要是创建的tiddata对象).2.调用 _endthreadex()函数 或 ExitThread()函数(最好不要): 如果使用这两种方法退出线程, 则不会执行线程函数的return语句, 所以就不会调用线程函数作用域内申请的类对象的析构函数, 会造成内存泄露... 阅读全文
posted @ 2011-10-02 23:27 The Path of Growth 阅读(56227) 评论(1) 推荐(3)
C/C++ 多线程学习心得
摘要: 这是我第一次写技术博客, 有点紧张(呵呵...~), 我就从写学习多线程编程的心得开始吧. 个人觉得在学习多线程编程之前最好先了解进程和线程的关系, 然后在学习线程工作方式的过程中动手写个(我是从抄开始的)多线程的小程序, 会对学习多线程有很大的帮助, 否则只有理论是很抽象的. 在学习多线程编程之前, 必须先知道什么是 线程函数, 线程函数就是另一个线程的入口函数. 默认情况下一个我们所写的代码都是只有一个线程的, 而这个线程的入口函数就是main() 函数, 这是系统默认的. 而我们创建的另一个线程也需要一个函数来进入, 这个函数就叫做线程函数. 在C/C++中, 可以调用 '运行. 阅读全文
posted @ 2011-10-02 23:05 The Path of Growth 阅读(12308) 评论(1) 推荐(1)
2011年9月19日
什么是 僵尸进程
摘要: 进程在它的生命周期有几种状态:睡眠,可运行,停止,正在运行和僵死状态。所谓僵死进程,指的是一个进程已经退出,它的内存和相关的资源已经被内核释放掉,但是在进程表中这个进程项(entry)还保留着,以便它的父进程得到它的退出状态。一个进程退出时,它的父进程会收到一个SIGCHLD信号。一般情况下,这个信号的句柄通常执行wait系统调用,这样处于僵死状态的进程会被删除。如果父进程没有这么做,结果是什么呢?毫无疑问,进程会处于僵死状态。实际上,僵死进程不会对系统有太大的伤害,最多就是它的进程号(PID)和进程表中的进程项系统不能使用。 举例地说就是: 一个父进程fork了一个子进程出来,然后它们... 阅读全文
posted @ 2011-09-19 15:39 The Path of Growth 阅读(1080) 评论(0) 推荐(0)
2011年9月18日
new/delete 与 malloc/free 区别
摘要: 摘自《高质量C++/C编程指南》1.malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2.对于非内部数据类型的对象而言,光用malloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。3.C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以一个能完成清理与释放内存工作的运算符delete。注意new/delete不 阅读全文
posted @ 2011-09-18 21:56 The Path of Growth 阅读(369) 评论(0) 推荐(0)
上一页 1 2
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3