//注1:定时函数与主线程函数共用堆栈
//注2:普通线程栈区的默认大小是2M,主线程栈区是8M
//注3:
//经测试:malloc非线程安全(在malloc,free操作很频繁时,会出错),加互斥量后,OK
/*
未加互斥量:
[5]:0xbedf6104
[0]:0xbf7f6104
[8]:0xbfff60f0
[4]:0xbeff6104
[2]:0xbf3f6104
[1]:0xbf5f6104
[3]:0xbf1f6104
[3]:0xbf1f6104
[5]:0xbedf6104
[0]:0xbf7f6104
[8]:0xbfff60f0
[2]:0xbf3f6104
[4]:0xbeff6104
[1]:0xbf5f6104
[3]:0xbf1f6104
[2]:0xbf3f6104
[8]:0xbfff60f0
[0]:0xbf7f6104
[1]:0xbf5f6104
[8]:0xbfff60f0
[4]:0xbeff6104
[2]:0xbf3f6104
[1]:0xbf5f6104
[0]:0xbf7f6104
[5]:0xbedf6104
Out of Memory: Killed process 185 (mmmm).
Out of Memory: Killed process 186 (mmmm).
Out of Memory: Killed process 187 (mmmm).
Out of Memory: Killed process 188 (mmmm).
Out of Memory: Killed process 189 (mmmm).
Out of Memory: Killed process 190 (mmmm).
Out of Memory: Killed process 191 (mmmm).
Out of Memory: Killed process 192 (mmmm).
Terminated
*/
//经测试:malloc也不可重入,定时函数重入主线程时,都会死掉。
//注:以上测试平台ARM_LINUX。
本文展示了一个使用C语言实现的多线程程序示例,重点在于如何通过互斥锁进行线程间的同步来确保内存分配的安全性。文章探讨了malloc函数在高并发环境下可能遇到的问题,并提出了解决方案。
1420

被折叠的 条评论
为什么被折叠?



