By Ben Chelf, CoverityEmbedded.com (11/04/08, 04:32:00 PM EST)
Today, multicore advancement in hardware has presented developers with a new conundrum, one that requires new coding, specific to the multithreaded applications populating today's latest gadgets. Multithreaded development approaches have increased over the years. Some experienced software developers, who work in an object-oriented and structured manner, think it shouldn't be too big a problem to get "parallel." However, doing so takes an extensive examination of where the problems are coming from, both for unique applications and in general.
The focus on multithreaded development is yet another contributor to the growing complexity that developers face today, along with outsourced code, legacy code, standards requirements, and basic market pressures for more features in less time. In combination, these factors create an extremely challenging software development environment for companies dependent on software to run their businesses.
The problem with multithreaded programming is in the sharing of data between concurrently running threads. Even the most structured and well-designed object-oriented program, when designed to be run in a single-threaded mode, will still encounter issues when trying to go parallel. Coordinating all the running threads, and the data that they share, leads to a whole new set of problems that previously didn't exist in a single-threaded world.
Click here to read more ...