社区
C#
帖子详情
实例化两个对象,用两个线程同时访问一个公共方法会不会出现问题?
hjhwfw
2004-08-19 08:11:23
希望大家讨论
...全文
457
24
打赏
收藏
实例化两个对象,用两个线程同时访问一个公共方法会不会出现问题?
希望大家讨论
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hjhwfw
2004-08-23
打赏
举报
回复
接分,各位
ncucf
2004-08-20
打赏
举报
回复
呵呵,我对vc里面的多线程操作还算清楚,c#中的,还没真正接触啊!
hjhwfw
2004-08-20
打赏
举报
回复
ncucf(ncu晨风)
能具体说一下吗?
vzxq
2004-08-19
打赏
举报
回复
用lock吧
hjhwfw
2004-08-19
打赏
举报
回复
lock(this)应该将该对象实例的所有方法都锁定吧?
还是只锁定threadToRun方法
zhangzgl
2004-08-19
打赏
举报
回复
如果希望不产生问题可以使用线程同步,线程同步是一种确保不同线程协调其对共享资源(如:控制台)的访问方式,实现同步,在C#中用lock提供,锁机制确保同一时间只有一个线程可以访问某个方法或代码.
如:
class Test
{
static void Main()
{
Test objTest=new Test();
Thread newThread=new Thread(new ThreadStart(objTest.threadToRun));
newThread.Start();
tbjTest.threadToRun();
}
void threadToRun()
{
lock(this)
for(int i=0;i<100;i++)
{
Console.WriteLine("线程数为:{0}",i)
}
}
}
hjhwfw
2004-08-19
打赏
举报
回复
MSDN每个类都会有这样一段:
线程安全
此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。
希望哪个高手给解释一下?
我不懂电脑
2004-08-19
打赏
举报
回复
如果操作了共享数据如类变量容易出问题,需要提供互斥操作才能保证线程安全
hjhwfw
2004-08-19
打赏
举报
回复
MSDN每个类都会有这样一段:
线程安全
此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。
希望哪个高手给解释一下?
hjhwfw
2004-08-19
打赏
举报
回复
楼上能不能说清楚些
lxcc
2004-08-19
打赏
举报
回复
公共方法
//看你是啥方法,比如有独享访问资源的时候,是不行的!
jietuan
2004-08-19
打赏
举报
回复
锁定方法,某个进程访问时。
lglesias
2004-08-19
打赏
举报
回复
hehe
学习中
顶
hjhwfw
2004-08-19
打赏
举报
回复
上面只是一个简单的计算,
如果函数中有数据访问并且时间很长(20秒),不知会不会有问题
hjhwfw
2004-08-19
打赏
举报
回复
private int i;
public void test()
{
i+=100;
}
lanyahu
2004-08-19
打赏
举报
回复
帮你up
Proyang
2004-08-19
打赏
举报
回复
有代码么?
canoe_eyes
2004-08-19
打赏
举报
回复
理论上说,不会的.具体要看你的公共方法的影响.
hivak47
2004-08-19
打赏
举报
回复
设置好的话,不会出问题的.
Samen168
2004-08-19
打赏
举报
回复
要看具体的实现方式
加载更多回复(4)
[调用
线程
无法
访问
此
对象
,因为另
一个
线程
拥有该
对象
。]
本文讨论了在C#编程中遇到的‘调用
线程
无法
访问
此
对象
’异常,该异常通常由于多个
线程
并发
访问
同一
对象
引起。文章指出,自C# 2005版本后,不支持直接从非UI
线程
操作UI控件,但可以通过使用委托(delegate)来解决这个
问题
。解决方案将在后续内容中展开。
线程
安全——
线程
安全
问题
是指多个
线程
访问
同一
对象
时,可能因竞争资源而导致数据不同步的
问题
。需要在代码中加入必要
线程
安全是指在多
线程
环境下,
对象
能被正确地
访问
和修改,保证数据的一致性。本文介绍了
线程
安全的三个级别:不可变性、有序性和原子性,以及如何通过互斥锁、条件变量和可重入锁等机制来保证
线程
安全。同时,讨论了死锁
问题
及其避免
方法
,以及Java中的`synchronized`关键字和C++中的`mutex`、`condition_variable`、`atomic`在多
线程
编程中的应用。
线程
-
线程
优缺点、
线程
自有和共享的数据、多
线程
使用
公共
空间、
线程
分离、
线程
库对
线程
的管理
本文围绕C++
线程
展开,介绍了
线程
的优缺点,如创建和切换代价小、占用资源少,但存在性能损失、健壮性降低等
问题
。还阐述了
线程
分离、自有和共享数据,以及多
线程
使用
公共
空间的注意事项。此外,讲解了C++11多
线程
、
线程
库管理和
线程
封装等内容。
线程
安全
问题
之卖票案例(使用同步代码块)
该博客以3个窗口同时卖100张票为例,阐述
线程
安全
问题
。实现时定义卖票
线程
,在主
方法
开启3个
线程
。为解决
线程
安全,定义
公共
锁
对象
,
线程
获锁才能卖票,执行完释放锁。
java多
线程
-
对象
及变量的并发
访问
本文详细探讨了Java中的synchronized关键字在确保
线程
安全方面的作用,包括同步
方法
、同步代码块的实现原理及应用。讲解了锁
对象
的概念,强调了同步的
线程
可见性和有序性。同时,讨论了多个锁
对象
导致的异步执行情况,以及如何通过synchronized避免并发
问题
。文章还提到了volatile关键字对于可见性和原子性的影响,以及防止代码重排序的作用。最后,涉及了多
线程
可能遇到的死锁
问题
以及解决策略。
C#
111,129
社区成员
642,532
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章