In Chapter 3, Managing Lots of Threads - Executors, we present an example of a client/server application. We implemented a server to search data over the World Development Indicators of the World Bank and a client that makes multiple calls to that server to test the performance of the executor.
In this section, we will extend that example to add to it the following characteristics:
- You can cancel the execution of queries in the server, using a new cancellation query.
- You can control the order of execution of queries using a priority parameter. Tasks with a higher priority will be executed first.
- The server will calculate the number of tasks and the total execution time used by the different users that use the server.
To implement these new characteristics, we have made the following changes to the server:
- We have added two parameters to every query. The first one is the name of the user that sends the query, and the other is the priority of the query...