我想应该不是线程安全的,DLL只是共享进程的堆栈而不是共享线程的堆栈.
只是上来让大家肯定一下.如果是不安全的,那有没有简单的办法搞得线程安全?
注意***不能被调用函数里设分界区***,这会严重影响性能!请大家发表一下意见.ps.很久没来csdn了,不知道这里人气还行不.
只是上来让大家肯定一下.如果是不安全的,那有没有简单的办法搞得线程安全?
注意***不能被调用函数里设分界区***,这会严重影响性能!请大家发表一下意见.ps.很久没来csdn了,不知道这里人气还行不.
解决方案 »
- 求助:线程消息
- Listview行的上移问题!
- char问题??
- 又要问下蛋疼的多线程问题了
- DBGrid中如何屏蔽insert键阿?
- 请教高手:如何使双击标题栏也不能最大化窗口,也不能用拖动方式 87分
- 用DELPHI编一些三层或多层的数据库软件,除了要用到ADO外还要用到一些什么工具?一般用DELPHI编什么样的软件最好(我现在靠DELPHI吃饭)?
- DELPHI 如何取得出错时错误原代码的行号和原代码文件名?急急!!!
- query与oracel
- 关于Delphi中的分布式数据库问题
- 怎么让button的caption竖着?
- 在listview中如何让选中checkbox时候同时该行也处于选中状态?
某些情况用TLS可以解决
其他用临界区,信号量以及其他内容。觉得看一下Aiminggoo的《Delphi源码分析》是不错的,建议楼主也看看,里面对多线程的讲解不错。
Aiminggoo的《Delphi源码分析》在哪里可以下?感谢了,省得费力去搜索了.
不过书本身不贵,40RMB-还是买一本吧
只是上来让大家肯定一下.这要看你的DLL里面的函数的处理了 比如是否存在对同一资源的存取,是不是线程安全的。。
比如说你打开文件 如果用独占方式打开 那么是安全的 否则可能会不安全。
我一时糊涂了,函数的堆栈是建立在调用者里面的,(在我这个问题里面,DLL里面的函数的堆栈是建立在调用者线程之上的,这样如果没用到全局变量的话,就没问题;反而用到全局变量就要保护了).
上面的一个朋友说的很对:
hottey(点亮心灵)(基础补习中):应该是函数中是否存在全局资源的访问.
而且我也已经通过试验了.这几天都在搞多线程,连接池之类的,脑子里都是临界区信号量这类的符号,很简单的一个基础问题被想复杂了.揭帖了,谢谢大家的参与!