多线程执行同一函数(不读写全局变量)安全吗?该怎么解决
多线程执行同一函数(不读写全局变量)安全吗?
比如有这样一个函数:
我要在N个线程里同时调用此函数, 而此函数不读写全局的东东. 请问是线程安全的吗?
如果说不安全, 需要同步处理, 那为什么delphi自带的一些函数如: StrToInt 又不用同步呢?
------解决方案--------------------
1、这个是线程安全的
2、DELPHI本身并没有保证所有东西都是线程安全的,例如说TLIST不是线程安全的,TTHREADLIST就是线程安全的
比如有这样一个函数:
- Delphi(Pascal) code
function test(a, b: Integer): Integer ; begin Inc(a) ; Inc(b) ; Result := a + b ; end;
我要在N个线程里同时调用此函数, 而此函数不读写全局的东东. 请问是线程安全的吗?
如果说不安全, 需要同步处理, 那为什么delphi自带的一些函数如: StrToInt 又不用同步呢?
------解决方案--------------------
1、这个是线程安全的
2、DELPHI本身并没有保证所有东西都是线程安全的,例如说TLIST不是线程安全的,TTHREADLIST就是线程安全的