免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2085 | 回复: 1

[FreeBSD] Freebsd下多线程的和单线程的可以混链吗? [复制链接]

论坛徽章:
0
发表于 2008-12-29 01:20 |显示全部楼层
win下提供了6套crt,静态的,动态的,单线程的,多线程的,debug版的,release版的。
并且,一个应用程序必须保证它所有的库都使用同样版本的crt,否则链接会报错。

然后说比较好玩的,从vc2005开始,我已经再也找不到单线程的crt。而从solaris 10开始,它不再提供静态的libc(即libc.a消失了)

我之前以为单线程/多线程 和 动态库/静态库 没有必然的决定性关系。但是貌似不是如此。有很多问题我不明白

1、在bsd下,如果我的一部份代码是加了-pthread编译的,一部分是没有的,然后链接在一起(静态或者动态),可以吗?

2、如果一个单线程的应用程序在执行的过程中用dlopen打开一个多线程的so,然后呢?会有什么变化吗?

3、gcc的-pthread参数在i386(无论是32位还是64位)环境下是undocumented?用info gcc,然后搜pthread,发现它并不在i386的有效的参数列表中。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2008-12-31 21:23 |显示全部楼层
个人的一些看法:
既然链接在一起了,就属于多线程环境了,在main之前的加载环境上会有一些操作,之前看过NetBSD的多线程环境和库的实现,并不是很清楚FB是不是那样处理。你的'单线程'的代码如果有被用到多线程环境里,需要处理线程安全
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP