CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  ATL/ActiveX/COM

一个动态库的导出函数能否被两个线程加载,执行结果有影响吗?

楼主fifaxjb(fifaxjb)2005-08-04 12:42:58 在 VC/MFC / ATL/ActiveX/COM 提问

我将类(class   A)的一个成员函数fun封装成了动态库的一个导出函数dFun。现在有两个线程同时加载这个动态库的函数dFun。每个线程的执行结果是否互相影响。 问题点数:50、回复次数:7Top

1 楼happyparrot(快乐鹦鹉)回复于 2005-08-04 12:45:43 得分 0

应该不会影响的。Top

2 楼dirdirdir3(风)回复于 2005-08-04 12:52:36 得分 0

按道理来说应该没有影响。Top

3 楼honker110(honker)回复于 2005-08-04 12:54:44 得分 0

不会的,这本来就是动态库的一个特点/优点Top

4 楼orbit(走了走了)回复于 2005-08-04 12:55:12 得分 0

只要没有使用共享数据段应该没有问题,但是设计到系统资源或其他外部资源的申请和释放的时候要注意使用临界区或其他方法保证对资源的安全访问Top

5 楼pipilupzj(皮皮鲁)回复于 2005-08-04 22:27:39 得分 0

两个线程在同一个进程的么?  
   
  如果在同一个进程的话,那么dll只会加载一次,在第二次加载的时候只是将dll的引用计数增加一个,两个线程操作的是同一个内存空间,所以执行结果肯定是有影响的  
   
  如果在不同进程的话,那么每个进程都会加载此dll,并且内存空间是相互隔离的,执行结果没有任何影响,除非你在dll中定义共享内存节(共享内存节中的数据为多个进程共享)Top

6 楼liuduofu(天上不下雨,地上也不干!)回复于 2005-08-25 10:28:34 得分 0

pipilupzj(皮皮鲁)正解,在同一个进程中,dll无论被调用多少次,只加载一次,在的动态库里你可以定义个全局变量,在调用的时候进行赋值,那个值是被改变的,在第二次调用的时候,值已经变化了  
  Top

7 楼wwjokwang(Why)回复于 2005-08-31 16:09:37 得分 0

如果在同一个进程的话,如果存在全局数据.执行结果有影响的  
  如果不存在全局数据.执行结果没有影响的  
   
   
  如果在不同进程的话,那么每个进程都会加载此dll,并且内存空间是相互隔离的,执行结果没有任何影响,除非你在dll中定义共享内存节(共享内存节中的数据为多个进程共享)  
   
  Top

相关问题

  • 我的动态库的导出函数有什么问题?
  • 导出函数.
  • BCB中编译的动态库,为什么函数导出表中的函数名开头都有一个下划线呢?
  • DLL导出函数
  • 我做了一个动态库想调用另一个动态库中的导出函数请问怎么样调用?(请给出动态和静态调用的方法)
  • 导出函数的名称!
  • 开发一个有一定规模设计多人多模块的软件,有许多常规的动态库导出函数接口,如何表达这样的需求?
  • 出来乍到,如何从动态库倒出函数?
  • ???如何查看动态库接口函数的参数???
  • 怎样在DELPHI里调用WINDOWS里的非动态库函数

关键词

  • 函数
  • 动态库
  • 线程
  • 执行
  • 内存
  • 数据
  • dll
  • 加载
  • 进程
  • 共享

得分解答快速导航

  • 帖主:fifaxjb

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo