3

基本使用线程问题在这里。

我正在修改一个带有 2 个线程类的程序,现在我想在两个类中使用一个类中定义的函数。

作为一个线程新手(只和他们一起玩了几个月)可以将函数从线程类移到主程序中并从两个类中调用它还是我需要在另一个类中复制函数那没有?

问候西蒙

4

2 回答 2

10

您可以从两个线程调用相同的函数。要注意的问题是一次修改来自两个线程的共享数据。如果该函数试图从两个线程修改相同的数据,您将得到一个不可预知的程序。

所以你的问题的答案是,“这取决于函数的作用。”

将函数复制到两个线程类中肯定无济于事。重要的是函数做了什么,而不是有多少份代码。

于 2013-02-10T20:07:39.487 回答
2

可能想要结帐线程锁定。在 1 个函数/方法上运行的线程可以以多种语言“锁定”该函数,因此其他线程无法同时访问它。 http://en.wikipedia.org/wiki/Lock_(computer_science)

于 2013-02-10T20:10:50.983 回答