0

我正在做一个项目,我们必须创建多个线程(实际数量将由测试人员(TA)输入)。我不仅在编程方面遇到问题,而且在设计方面也遇到了麻烦,我无法理解所有将被调用的线程以及可能导致错误的地方。该项目即将到期,所以如果它真的让我退缩,我不想浪费时间,但我想知道我是否应该编写程序,就像只有一个线程将运行并且一切都应该是顺序的,然后再稍后返回并尝试添加代码的线程安全部分?这会花费原始时间的两倍吗?

项目描述:注意:我将尽可能含糊其辞,以免违反任何荣誉准则,对不起:(

你的程序应该接受 n 个 objectA 线程、m 个 objectB 线程和 r 个 objectC

objectB 线程与 objectA 中的代码交互。objectA 线程与 objectB 和 objectC 中的代码交互 objectB 和 objectC 不直接交互,而是通过 objectA -ex 间接交互:objectB 需要来自 objectA 的东西。objectA 通过调用 objectC 获得该结果的结果

我的困惑主要源于所有这些交互都将由 m+n 个线程完成,并且在整个描述中存在各种限制,例如 objectB 可以从 objectA 请求某些内容,而 objectA 必须等待 objectC 在返回之前完成该内容它对对象B。此外,每个 objectA 线程一次只能处理来自 objectB 的一条指令,依此类推。

我只是想知道我是否编写代码使得只有1个objectA,1个objectB和1个object C,我可以回去轻松修改它,以便可以将那些1更改为m,n和r吗?

再次抱歉,如果我的描述有点混乱。

4

1 回答 1

1

我想知道我是否应该像只运行一个线程那样编写程序并且一切都应该是顺序的,然后再回去尝试添加代码的线程安全部分?

我会让程序首先使用最少的线程。然后我会重新编写它以使用多个线程。你不应该低估这可能需要做多少工作,当你这样做时,你必须重新审视你的所有假设。

这会花费原始时间的两倍吗?

至少两倍长,但它更有可能起作用。如果您尝试一次完成所有操作,那么您最终可能会变得一团糟,而不是根本无法工作。如果您因努力而获得分数,并且有时遇到线程安全错误也没关系,那么一次性方法可能会给您最好的分数。如果您是专业开发人员,使用一个线程工作的东西比使用多个线程的罕见且不可重现的错误要好得多。

于 2012-10-28T08:08:24.190 回答