Developing concurrent distributed systems
<p>We have seen that concurrency problems can sometimes have more than one solution, for example you were asked above to replace a lock condition by a semaphore. Another example is that we might have addressed the issues of mutual exclusion with Java’s built-in locking mechanism using synchronized, instead of using re-entrant locks. </p>

<p>Deciding between alternative solutions to concurrency problems is likely to involve trade-offs between different factors. Identify any two factors that you think should be taken into consideration and say which is the most important, briefly explaining your reasoning.</p>
