Ped*_*dro 2 java multithreading locking synchronized
我有一个线程,即接收tcp数据包并将每一行添加到一个缓冲区ArrayList<String>.另一个线程应定期检查新数据是否可用,但仅限于缓冲区当前未锁定.但是如何检查它是否已被锁定?在C++中,我可以显式锁定互斥锁.
这是我想要做的一些伪代码:
while(buffer.isLocked())
{
buffer.wait();
}
buffer.lock();
buffer.add(tcpPacket);
buffer.unlock();
buffer.notify();
Run Code Online (Sandbox Code Playgroud)
到目前为止这是我的java代码:
void process(String tcpPacket)
{
synchronized(buffer)
{
buffer.add(tcpPacket);
}
buffer.notify();
}
Run Code Online (Sandbox Code Playgroud)