37 lines
711 B
Java
37 lines
711 B
Java
![]() |
package com.iluwatar;
|
||
|
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.List;
|
||
|
import java.util.concurrent.locks.Lock;
|
||
|
import java.util.concurrent.locks.ReentrantLock;
|
||
|
|
||
|
|
||
|
public class Inventory {
|
||
|
|
||
|
private int inventorySize;
|
||
|
private List<Item> items;
|
||
|
private Lock lock = new ReentrantLock();
|
||
|
|
||
|
public Inventory(int inventorySize) {
|
||
|
this.inventorySize = inventorySize;
|
||
|
this.items = new ArrayList<Item>(inventorySize);
|
||
|
}
|
||
|
|
||
|
public boolean addItem(Item item){
|
||
|
if(items.size()<inventorySize){
|
||
|
lock.lock();
|
||
|
try{
|
||
|
if(items.size()<inventorySize){
|
||
|
items.add(item);
|
||
|
System.out.println(Thread.currentThread());
|
||
|
return true;
|
||
|
}
|
||
|
}finally{
|
||
|
lock.unlock();
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
}
|