以下程序段定义的类ShareDataManager用于管理多个线程共享数据data。为了对data的取、存和修改操作保持完整,多线程在data上的操作有互斥要求;另外,限制线程对data的修改不能让data为负数,所以多线程在data上的操作还有同步要求。为此,程序为管理data上的操作定义成类,以下是管理共享数据data的类ShareDataManager的代码。
class ShareDataManager
int data;
ShareDataManager(int init)data=init;
public int getData() return data;
private void putData(int newValue) data=newValue;
synchronized void modiData(int delta)
if(delta>=0) putData(getData()+delta);
else
while (______<0)
try wait(); catch (InterruptedException e)
putData(getData()+delta);
______;