社区
Linux/Unix社区
帖子详情
UNIX线程共用一个变量,出现core dump
zshtiger2414
2009-11-19 05:26:58
在UNIX系统下,创建多线程,做了两个测试程序。
这两个测试程序中都用到线程访问全局变量,但是有一个程序core dump了,一个程序没有core dump,这是为什么啊?
请问哪个达人能帮忙啊?
...全文
132
9
打赏
收藏
UNIX线程共用一个变量,出现core dump
在UNIX系统下,创建多线程,做了两个测试程序。 这两个测试程序中都用到线程访问全局变量,但是有一个程序core dump了,一个程序没有core dump,这是为什么啊? 请问哪个达人能帮忙啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Caballeroo
2009-11-23
打赏
举报
回复
[Quote=引用 8 楼 zshtiger2414 的回复:]
引用 6 楼 caballeroo 的回复:
core dump 是代码segmentation fault时记录内存中数据的文件。
一般需要使用ulimit -c size,才会在代码异常时产生一个core文件。
你的代码应该有内存的非法写入等操作!
正象你说的那样子在程序中几个现成对对stderr进行了写入操作的时候出现了core dump!
这样的错误应该怎么样去避免啊?
[/Quote]
这种错误要是避免的话,完全靠平时写代码的注意点了!
zshtiger2414
2009-11-23
打赏
举报
回复
[Quote=引用 6 楼 caballeroo 的回复:]
core dump 是代码segmentation fault时记录内存中数据的文件。
一般需要使用ulimit -c size,才会在代码异常时产生一个core文件。
你的代码应该有内存的非法写入等操作!
[/Quote]
正象你说的那样子在程序中几个现成对对stderr进行了写入操作的时候出现了core dump!
这样的错误应该怎么样去避免啊?
一 铭
2009-11-21
打赏
举报
回复
这怎么说的准哦, 代码贴上来才知道
morris88
2009-11-21
打赏
举报
回复
把代码贴上来瞧瞧...
Caballeroo
2009-11-21
打赏
举报
回复
core dump 是代码segmentation fault时记录内存中数据的文件。
一般需要使用ulimit -c size,才会在代码异常时产生一个core文件。
你的代码应该有内存的非法写入等操作!
wuyu637
2009-11-19
打赏
举报
回复
如果两个线程都同时往里写,是会有问题的。
你可以先申明一个和那个全局变量一样,只有名字有差异的副本,让其中一个线程,访问副本,另外一个线程访问原来的变量,如果程序不会奔溃,就说明是同步的问题。
或者就直接点用简单的同步方法,mutex_lock之类的,防止这种情况
zshtiger2414
2009-11-19
打赏
举报
回复
[Quote=引用 1 楼 steedhorse 的回复:]
应该是其它的原因。
仅仅因为两个线程访问同一个变量不至于core dump,线程之间共享的东西还多着呢。
[/Quote]
我看了一下程序,真的就是因为程序用fprintf向stderr写东西的时候,因为系统内部调用pthread_mutex_lock函数出错了。
是不是因为这种加锁就可以使得在向某个变量写的时候,就会出现错误啊?
Wenxy1
2009-11-19
打赏
举报
回复
用gdb调试下。
晨星
2009-11-19
打赏
举报
回复
应该是其它的原因。
仅仅因为两个线程访问同一个变量不至于core dump,线程之间共享的东西还多着呢。
【Linux系统】
线程
概念
本文深入探讨了
线程
的核心概念及其在Linux系统中的实现与管理。
线程
作为进程内的执行单元,共享进程资源但拥有独立调度上下文,其核心特性包括并发性、独立性和轻量级资源管理。文章详细分析了
线程
与进程的关系,指出
线程
是调度的基本单位而进程是资源分配的基本单位,并通过内存分页机制解释了操作系统如何高效管理物理内存。同时,文章对比了
线程
的优缺点,强调多
线程
编程在性能提升和资源利用上的优势,也指出了同步复杂性和健壮性降低等挑战。最后,通过Linux中进程与
线程
的资源共享与独占分析,揭示了
线程
作为轻量级进程的本质,并澄清
c++牛客总结
const修饰类的成员
变量
目标是常量不能被修改;const修饰类的成员函数,表示该函数不会修改类的数据成员,不会调用其他非const的成员函数。声明是告诉编译器
变量
的类型和名字,不会为
变量
分配空间定义就是对这个
变量
和函数进行内存分配和初始化。需要分配空间,同
一个
变量
可以被声明多次,但是只能被定义一次C++ STL从广义来讲包括了三类:算法,容器和迭代器。算法包括排序,复制等常用算法,以及不同容器特定的算法。
进程和
线程
1、基本概念: 1.1定义 进程是具有一定独立功能的程序关于某个数据集合的一次运行活动,进程是操作系统进行资源分配和调度的
一个
独立单位;它可以申请和拥有系统资源,是
一个
动态的概念,是
一个
活动的实体,它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。
线程
是进程的
一个
实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,
线程
自己基本...
(大集合)Linux进程和
线程
的基本编程、通讯和例程【杂记】
真正的全面!对 Linux 进程 和
线程
的基本 编程、通讯(IPC、
线程
同步) 和 例程 做
一个
大总结
【Linux】
线程
的概念{虚拟地址堆区细分/缺页中断/页/初识
线程
/创建
线程
/优缺点}
初识
线程
,Linux下的
线程
是各大设计者的精心之作!
Linux/Unix社区
23,219
社区成员
74,543
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章