免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: cugb_cat
打印 上一主题 下一主题

malloc 的可重入性 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2007-05-29 23:22 |只看该作者
原帖由 ypxing 于 2007-5-29 23:18 发表


感觉thread safety版本的malloc如果是加锁处理了的,
那么,在一个函数调用malloc的时候,
如果现在发生了信号中断,
而信号处理程序中又调用了malloc
这样会造成死锁吧

不知道怎么搞的



有道理。
还是谁去研究一下怎么实现的吧。或者这个锁可能属于它的时候再去获取不会死锁了?

论坛徽章:
0
42 [报告]
发表于 2007-05-29 23:22 |只看该作者
怎么从线程安全就“也就是”到了原子操作?


其实可以这么认为,他的原子的意思就是不被其它线程中断,所以算是

论坛徽章:
0
43 [报告]
发表于 2007-05-29 23:24 |只看该作者
原帖由 flw2 于 2007-5-29 23:22 发表



有道理。
还是谁去研究一下怎么实现的吧。或者这个锁可能属于它的时候再去获取不会死锁了?


刚刚想起来,有非阻塞式的,先检测一下,被锁了就返回

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
44 [报告]
发表于 2007-05-29 23:27 |只看该作者
原帖由 flw2 于 2007-5-29 23:22 发表
怎么从线程安全就“也就是”到了原子操作?


其实可以这么认为,他的原子的意思就是不被其它线程中断,所以算是

线程安全和被不被其他线程中断也扯不上什么关系。

论坛徽章:
0
45 [报告]
发表于 2007-05-29 23:33 |只看该作者
原帖由 MMMIX 于 2007-5-29 23:27 发表

线程安全和被不被其他线程中断也扯不上什么关系。


世界上有什么是原子的?
很多系统调用是原子?为什么?有本质区别吗?

论坛徽章:
0
46 [报告]
发表于 2007-05-29 23:33 |只看该作者
原帖由 MMMIX 于 2007-5-29 23:18 发表

怎么从线程安全就“也就是”到了原子操作?

针对于线程而言是“原子操作”

论坛徽章:
0
47 [报告]
发表于 2007-05-29 23:42 |只看该作者
原帖由 flw2 于 2007-5-29 23:22 发表
怎么从线程安全就“也就是”到了原子操作?


其实可以这么认为,他的原子的意思就是不被其它线程中断,所以算是



这里我想MMMIX意思就是:

某些函数, 多个线程同时调用, 是没有任何问题的.
但是某些使用了static变量之类的函数, 多个线程同时调用, 就会产生意想不到的问题.

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
48 [报告]
发表于 2007-05-29 23:43 |只看该作者
原帖由 cugb_cat 于 2007-5-29 23:33 发表

针对于线程而言是“原子操作”

未必,如果真的对线程而言其是“原子操作”,那么显然你可以在线程的信号处理函数中调用该函数,即使该函数执行到一半被信号中断。

有两种不同的重入:
1、多个线程同时调用某函数;
2、某函数执行到一半的时候被信号中断,在信号处理函数中又调用该函数。

论坛徽章:
0
49 [报告]
发表于 2007-05-29 23:46 |只看该作者
原帖由 MMMIX 于 2007-5-29 23:43 发表

未必,如果真的对线程而言其是“原子操作”,那么显然你可以在线程的信号处理函数中调用该函数,即使该函数执行到一半被信号中断。

有两种不同的重入:
1、多个线程同时调用某函数;
2、某函数执行到一半的 ...



MMMIX这里是不是可以理解为:

一把锁, 在多个线程间可以互斥.
但是, 一把锁却无法解决一个线程处理异步事件时候的互斥.

困了...准备休息了^^

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
50 [报告]
发表于 2007-05-29 23:47 |只看该作者
原帖由 flw2 于 2007-5-29 23:33 发表


世界上有什么是原子的?
很多系统调用是原子?为什么?有本质区别吗?

在计算机的术语中,“原子操作”有其特定的意义,可以参考:
http://www.answers.com/topic/atomic-operation

[ 本帖最后由 MMMIX 于 2007-5-30 00:01 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP