The star indicates that the pair of fields may be repeated 0 or more times.
j::::
The project will be graded according the criteria for the final project - see below.
Elaboration:
- Reading Job specifications from a data file and adding the required resources to each Job instance.
- Resource pools - data structures supporting artifacts of a given type within each party, resource pools, along with supporting assignment to creatures
- Job threads - using the resource pools and supporting the concept of blocking until required resources are available before proceeding.
- The Job threads should be efficient:
- If both the Creature of that Job and all the required resources are available, the Job should start.
- Otherwise, the Job should not hold any resources if it cannot progress.
- Use synchronization to avoid race conditions.
- Each Job thread should hold any required synchronization locks for a very short period.
- GUI showing:
- Resources in pools
- Thread progress, resources acquired, and resources requests still outstanding