3

ここでスレッドの質問を使用する基本。

2 つのスレッド クラスを持つプログラムを変更していますが、1 つのクラスで定義された関数を両方のクラスで使用したいと考えています。

スレッドの初心者(数か月しか遊んでいない)として、関数をスレッドクラスからメインプログラムに移動して、両方のクラスから呼び出すだけでいいですか、それとも他のクラスで関数を複製する必要がありますかそれがないの?

よろしくサイモン

4

2 に答える 2

10

両方のスレッドから同じ関数を呼び出すことができます。注意すべき問題は、2 つのスレッドから同時に共有データを変更することです。関数が両方のスレッドから同じデータを変更しようとすると、予測不能なプログラムになってしまいます。

したがって、あなたの質問に対する答えは、「関数が何をするかによって異なります」です。

関数を両方のスレッド クラスにコピーすることは確かに役に立ちません。重要なのは、コードのコピーがいくつあるかではなく、関数が何をするかです。

于 2013-02-10T20:07:39.487 に答える
2

スレッドロックをチェックアウトしたい場合があります。1つの関数/メソッドで動作するスレッドは、多くの言語でその関数を「ロック」できるため、他のスレッドが同時にアクセスすることはできません。 http://en.wikipedia.org/wiki/Lock_(computer_science)

于 2013-02-10T20:10:50.983 に答える