200分 --->多线程调用同一个函数的安全问题<--- 200分

flyinwuhan flyinwuhan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我写了这样一个函数:
function Test( s:string ):Pointer;
var
ary : array [0..255] of char;
begin
strpcopy( ary, s );
result := @ary[0];
end;

问题是,如果多个线程同时调用函数Test的话会不回发生冲突?
我做的实验,在每一个线程中调用Test函数,所有线程调用Test函数的返回值是固定的,也就是说多个线程访问的是同一片内存。

“这个问题好象是有些让人迷惑。因为我没做过具体的测试。如果是线程局部变量的话,他们都有各自的副本,是互不干扰的。但现在是函数内变量,(这个函数应该看做是全局变量),而不是线程内变量。从汇编级来看的话。是不是可以这样来看????
每个线程都是 call test。test是同一个,只不过它被多个线程调用,只有一个TEST存在的话,那么 ARY 肯定也就是 分配在一个固定的地方。基于这个想法,ARY应该是分配在同一个栈空间上。不知道对不对。我自己也很怀疑。”
...全文

相关推荐

解决AJAX返回状态200没有调用success的问题

今天小编就为大家分享一篇解决AJAX返回状态200没有调用success的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

weixin_38543749

C200系列开发:C200PME_C200PME高级编程技术:并发与多线程

并发是指程序在同一时间执行多个任务的能力。多线程是并发的一种具体实现方式,它允许一个程序中同时存在多个执行路径(线程),每个线程可以独立执行不同的任务。在C200PME系统中,多线程可以用于处理多个传感器数据、执行复杂的控制算法、管理用户界面等。线程函数是线程执行的具体任务,通常是一个独立的函数。在C200PME系统中,多线程编程可以显著提高系统的响应速度和处理能力。通过合理地使用线程管理器、线程同步机制和线程通信机制,可以实现高效、可靠的并发程序。

zhubeibei168

西门子 S7-200 Scale函数库

西门子 S7-200 Scale函数库

wingwf2000New

浅谈python多线程和多线程变量共享问题介绍

主要介绍了浅谈python多线程和多线程变量共享问题介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

weixin_38658086

QQ旋风每天刷200分工具

QQ旋风每天刷200分工具,下载后拉到自己的旋风下载,秒下完成 完成后过明天才有积分,最多200积分, 只做一次就行了

ID80080
评论 35
收藏 已收藏
分享
返回顶部
flyinwuhan
Delphi 5,944 成员 262,941 内容