我明确的知道我想同步什么东西,我是想C#的线程如何能拥有自己的东西呢??就像Java那样要从线程类继承,然后每new出来一个对象都是线程对象,并且每个对象还可以有自己的字段,但是C#就不同了,如果是多个线程执行的是同一个对象的同一个方法,那么这些线程是共享这个对象的属性,就像我的第二段测试程序那样。如果每个线程都对应一个不同的对象(同一个类new出来的)的同一个方法,那么这些线程才能算是通过那个对象间接拥有自己的属性。
解决方案 »
- |ZYCWPF| WebBorswer添加了DocumentCompleted事件后,在取得Event后如何清空 谢谢 有示例代码
- [请教]C#局域网内主机探测[有点难度,网络知识要扎实]
- 一个简单的关于反射的问题,期待高手回答
- 应用程序 进程的区别
- 求助 怎么样把txt文件(有格式的)导入Excel中 用c#
- 请问各位,做一个类似msn的工具大致需要多少时间...
- 非常强大的.NET FrameWork基于WinFrom的SyBase DataWindow.NET开发包,并提供源代码。
- 菜鸟级的问题??各位帮个忙!!
- C# 线程 委托
- C#的问题,请各位大哥帮帮忙
- treeview节点的焦点问题
- 20分拿去
任何的对象,只要线程能够拿到引用就可以使用,java的线程也没有什么属于自己的东西,如果另一个线程能够拿到这个线程对象的引用,照样可以使用这个线程内的属性,他唯一需要考虑的是这个属性的修饰符,也就是public,private,protected这些。要记住资源是属于当前进程的东西。
对于两个不同的线程,只要有可能同时访问同一个资源,那么就需要考虑同步
你说的java的例子是因为大部分得时候一个线程不会拿到另外一个线程类的实例,也就是在编程上约定了两个线程逻辑分隔,但在物理上,这两个线程还是处在相同的地址空间,他们之间是可以相互访问的,因此,不能说java中的thread类子类中的属性是属于哪个线程的。
你先看看定义,就会明白线程不能拥有自己的东西,只能是你自己在逻辑上分隔。