Abstract [eng] |
Why to use concurrent programing? Mostly for optimizing computer resources, to optimize programs, that they use the resources better and more efficient. These days most computers have processors with two and more cores and most programs don't use them efficient. Java threads are easy to use, but they have some problems, like deadlocks, livelocks, starvation. In this document we analize what problem solution are better for the problems, locks or semaphores and when which solution to use. Another thing that is important is how many threads to use in different algorithms and what influence have they on the computer resources and run time. And of course is there a difference between threads in algoritms that make the same work and different work, what influence in runtime and resources usage has it? All the analysis is made by a specialy designed application directly for the purpose of monitoring. It can monitor the use of resources and runtime of a given application many times and give you the results. It helps to evade the problem of a single test that can be faulty. All this analysis helps us to decide when to use more threads, when to use less. When it's time to get a multicore processor. What solutions to use. All this helps us to make better and faster decisions when we program our applications. |