并行处理同一类MRO的两个对象

时间:2015-12-18 04:52:44

标签: c# multithreading parallel-processing

如果我们有两个相同类的对象并行运行

 object1 // runs on processor 1
  object2 // runs on processor 2

在C#类对象中拥有自己的set数据成员并共享相同的函数集。

如果两个类都希望同时执行相同的方法,编译器如何将方法分配给类对象。

object1.process();
object2.process();

编译器如何在运行时决定相同类对象的优先级

1 个答案:

答案 0 :(得分:2)

我想我理解这个问题......方法就是代码。它们是像数据成员一样的字节,但您可以确定这些字节不会更改。因此“分配”没有问题,代码可以在任何线程上执行,而不会出现数据损坏的风险。

然而,方法的代码可以间接访问数据成员。并且你将确保这些成员不会被不同的线程以交错的方式进行更改。

您可以通过多种方式执行此操作,我确信这些方法将在整个网络中进行记录(检查重新入门,锁定,信号量,互斥量和原子操作)。