1.我之前就简单的认为 线程 不就是些 创建, 运行,销毁吗?
或者说 就是这些函数:
pthread_create()
pthread_exit()
pthread_detach()
..and 不就是这些吗?或者说 还能有丶什么 呢?
于是,在linux 下准备学习 pthread 线程
博主:Jagen在路上
地址: 在Linux中使用线程.
------------2017--0930----修改----
新增函数:
pthread_join()
适合在主线程中,因为 阻塞了。 没法 往下运行了。
----
pthread_cancel()
pthread_testcancel()
至于这三个怎么用,你可以man 一下,
哦,还有 pthread_self() 这个一看,就是pthread 她自己。 对吧。
举个栗子:
你在当前线程中,想再创建一个线程,于是 你pthread_create() 了
可,当主线程退出了,你是不是 要关闭 主线程下创建的线程,关闭 线程下创建的子线程(这个就是最里面那个线程)。
你如没有全部退出,你再次运行,虽不影响,但 会占用 你系统的开销。时间久了,,,程序就无法创建线程。。。。。程序就会出现莫名其妙的错误。(我猜的,哈哈!)
---------------------------------------------------------------
2. 这个 是讲 线程 状态的 博文:
pthread_join一般是主线程来调用,用来等待子线程退出,因为是等待,所以是阻塞的,一般主线程会依次join所有它创建的子线程。
pthread_exit一般是子线程调用,用来结束当前线程。
子线程可以通过pthread_exit传递一个返回值,而主线程通过pthread_join获得该返回值,从而判断该子线程的退出是正常还是异常。
上面这话 来自于这篇:
3.到后来,我发现了,不,是因为需要。我 要解决这个问题。
问题是:
解决了一个隐蔽的内存泄漏——pthread_create后没有detach导致内存持续增长
博主 是Bit
地址是:pthread_create内存泄漏 (资源泄漏)
4.
Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具
官网下载地址:下载 valgrind
Unix下C程序内存泄露检测工具:valgrind的安装使用
valgrind使用指南
感谢以上博主的无私奉献!