社区
语言基础/算法/系统设计
帖子详情
多线程调用DLL里的同一个函数是不是线程安全的? (up有分)
BoningSword
2004-11-11 12:03:38
我想应该不是线程安全的,DLL只是共享进程的堆栈而不是共享线程的堆栈.
只是上来让大家肯定一下.
如果是不安全的,那有没有简单的办法搞得线程安全?
注意***不能被调用函数里设分界区***,这会严重影响性能!
请大家发表一下意见.
ps.很久没来csdn了,不知道这里人气还行不.
...全文
463
11
打赏
收藏
多线程调用DLL里的同一个函数是不是线程安全的? (up有分)
我想应该不是线程安全的,DLL只是共享进程的堆栈而不是共享线程的堆栈. 只是上来让大家肯定一下. 如果是不安全的,那有没有简单的办法搞得线程安全? 注意***不能被调用函数里设分界区***,这会严重影响性能! 请大家发表一下意见. ps.很久没来csdn了,不知道这里人气还行不.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BoningSword
2004-11-11
打赏
举报
回复
to hottey(点亮心灵)(基础补习中)
Aiminggoo的《Delphi源码分析》在哪里可以下?感谢了,省得费力去搜索了.
hottey
2004-11-11
打赏
举报
回复
关键不是什么函数的问题,应该是函数中是否存在全局资源的访问,这样就不安全了。
某些情况用TLS可以解决
其他用临界区,信号量以及其他内容。
觉得看一下Aiminggoo的《Delphi源码分析》是不错的,建议楼主也看看,里面对多线程的讲解不错。
zwjchina
2004-11-11
打赏
举报
回复
这个问题值得关注一下!
o2delphi
2004-11-11
打赏
举报
回复
临界区不行,试试互斥量,信号量。不过没测过,不知性能如何。
BoningSword
2004-11-11
打赏
举报
回复
补充:不要被DLL给弄糊了,其实多线程调用DLL里的函数和调用普通的本地函数本质是一样的.
BoningSword
2004-11-11
打赏
举报
回复
感谢大家的参与!
我一时糊涂了,函数的堆栈是建立在调用者里面的,(在我这个问题里面,DLL里面的函数的堆栈是建立在调用者线程之上的,这样如果没用到全局变量的话,就没问题;反而用到全局变量就要保护了).
上面的一个朋友说的很对:
hottey(点亮心灵)(基础补习中):应该是函数中是否存在全局资源的访问.
而且我也已经通过试验了.
这几天都在搞多线程,连接池之类的,脑子里都是临界区信号量这类的符号,很简单的一个基础问题被想复杂了.
揭帖了,谢谢大家的参与!
aiirii
2004-11-11
打赏
举报
回复
如果是單純數值計算, 我想是沒有問題的!
tfxg
2004-11-11
打赏
举报
回复
不会,在研究当中
beyondtkl
2004-11-11
打赏
举报
回复
我想应该不是线程安全的,DLL只是共享进程的堆栈而不是共享线程的堆栈.
只是上来让大家肯定一下.
这要看你的DLL里面的函数的处理了 比如是否存在对同一资源的存取,是不是线程安全的。。
比如说你打开文件 如果用独占方式打开 那么是安全的 否则可能会不安全。
WGYKING
2004-11-11
打赏
举报
回复
嘻嘻~~
hottey
2004-11-11
打赏
举报
回复
现在只有部分章节下载,在www.2ccc.com上应该有吧!
不过书本身不贵,40RMB-还是买一本吧
多线程
调用
dll
多线程
调用
dll
中的
函数
源码,值得初学者学习。
C++
调用
多线程
DLL
,
多线程
调用
回调
函数
在C++代码中要
调用
C++编写的
dll
中的一个
函数
,并传递一个回调
函数
(很明显,这
里
应该传递一个委托),C++
函数
在内部通过一个额外的线程在后台运行,完成工作后通过这个回调
函数
通知前台的C++代码。。。。 【问题】 ...
多线程
调用
DLL
(面向对象)
关于
DLL
的说明,这
里
所使用的
DLL
,并非是一些功能
函数
的集合,每次
调用
一个
函数
实现相应功能即可。而是封装了一个“小程序对象”,其前身是OCX,我们将OCX封装为一个
DLL
。 因此,此
DLL
中会存在某个对象A,生存...
java
调用
dll
是
多线程
的_java
调用
dll
,是否可以
多线程
调用
dll
的方法?
以下内容源于网络:... 然而,在
多线程
的情况下, 可能出现以下问题:问题描述:一个java对象通过JNI
调用
DLL
中一个send()
函数
向服务器发送消息,不等服务器消息到来就立即返回.同时把JNI接口的指针JNIEnv *en...
c语言
多线程
调用
dll
,用C语言写的
DLL
库并成功使用动态方法
调用
其
函数
一些说明使用VS2013作为IDE使用空项目项目属性->配置属性->常规->...
调用
约定->__stdcall (/Gz)项目属性->配置属性->链接器->输入->模块定义文件->my
dll
.def源文件-&g...
语言基础/算法/系统设计
16,748
社区成员
33,247
社区内容
发帖
与我相关
我的任务
语言基础/算法/系统设计
Delphi 语言基础/算法/系统设计
复制链接
扫一扫
分享
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章