1

在这里,我有一个 j2me 应用程序,我需要从输出流传输或保存实时数据。

如果我使用一个线程将数据写入流,并且在写入某些无字节后,另一个线程从中获取一个字节数组,保存或传输它并将流重置为零会发生什么。

即对其调用reset ..这实际上等于使用流作为固定大小的缓冲区..

这里的限制是我可能无法为此目的使用 byteBuffer 对象

这会使流无效,因为第一个线程仍在连接它吗?

4

1 回答 1

1

我假设您将使用java.io.ByteArrayOutputStreamclass,它是CLDC 1.0J2ME 标准的一部分。

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 回答