1

ここでは、j2me アプリケーションを取得し、出力ストリームからライブ データを送信または保存する必要があります。

1 つのスレッドを使用してストリームにデータを書き込み、特定の ofl バイトを書き込んだ後、別のスレッドで bytearray を取得して保存または送信し、ストリームをゼロにリセットするとどうなるでしょうか。

つまり、リセットを呼び出す..これは、固定サイズのバッファとしてストリームを使用することと実質的に同じです..

ここでの制約は、目的のために byteBuffer オブジェクトを使用できない可能性があることです

最初のスレッドがまだそれに配線されているため、ストリームが無効になりますか?

4

1 に答える 1

1

J2MEjava.io.ByteArrayOutputStreamの標準の一部であるクラスを使用することを前提としています。CLDC 1.0

CLDC 1.0 は のスレッドセーフについて何も述べていませんByteArrayOutputStream

しかし、の実装を見るとByteArrayOutputStream、必要なすべてのメソッドは次のようになりますsynchronized

public synchronized byte toByteArray()[] { ... }
public synchronized void reset() { ... }
public synchronized void write(byte b[], int off, int len) { ... }

J2ME クラスのソースにアクセスできる場合。それを再確認できます。

メソッドが同期されている場合は、計画どおりにストリームを使用しても安全です。

于 2012-06-28T12:55:06.367 に答える