两个线程使用相同函数

3 投票
2 回答
4373 浏览
提问于 2025-04-17 15:26

这里有个关于线程的基本问题。

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

作为一个线程的新手(我只玩了几个月),我想问一下,把这个函数从线程类移到主程序中,然后在两个类里调用它,这样可以吗?还是说我需要在没有这个函数的那个类里重复一遍这个函数?

问候,

西蒙

2 个回答

2

你可能想了解一下线程锁定。多个线程在同一个函数或方法上运行时,可以在很多编程语言中“锁定”这个函数,这样其他线程就不能同时访问它了。http://en.wikipedia.org/wiki/Lock_(computer_science)

10

你可以在两个线程中调用同一个函数。不过,需要注意的是,如果两个线程同时修改共享的数据,就会出现问题。如果这个函数试图在两个线程中同时修改同样的数据,程序的表现就会变得不可预测。

所以,回答你的问题就是:“这要看这个函数具体做了什么。”

把这个函数复制到两个线程的类里是没有帮助的。关键在于这个函数的具体功能,而不是代码的复制数量。

撰写回答