首页 新闻 搜索 专区 学院

请教c#多线程同时调用同一个非静态方法,是否会发生异常,产生线程安全问题

0
悬赏园豆:5 [已解决问题] 解决于 2021-05-26 22:02

比如,我创建多个线程,同时调用非静态方法:
public string hello(String str)
{
for(int i=0;i<100;i++)
String tmp = "";
tmp = tmp + str+i.ToString();
return tmp;
}

网上查找资料,说多线程调用静态方法,只要静态方法内不涉及静态变量(公共资源),每个线程间调用方法内部的变量不会混乱、不会相互干扰,多线程间不存在相互“干扰”,那么多线程同时调用比如上面的非静态方法时,只要非静态方法里不涉及静态变量(公共资源),是否每个线程的运行结果也不会受到其他线程的影响呢?

rossi1984的主页 rossi1984 | 初学一级 | 园豆:24
提问于:2021-05-25 14:27
< >
分享
最佳答案
0

不涉及到公共资源,或多个线程操作修改同一个东西,独立单元多线程没问题,各操作各的!

就好比学生去食堂吃饭,每个人吃的都是自己的餐盘的食物,来十个人也是这样吃,
只要不是去一个锅里抢饭吃,不会出现饭不够吃或者打错饭的情况

收获园豆:3
对白、 | 菜鸟二级 |园豆:445 | 2021-05-25 16:03
其他回答(1)
0

你这个不会。因为多个线程没有处理共有的变量

收获园豆:2
会长 | 园豆:10306 (专家六级) | 2021-05-25 19:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册