The disadvantages of a multi-core system are that it is difficult to implement, results from different processors need to be combined at the end of the processing meaning it can be complex and adds time to execute; not all tasks can be split across multiple processors and concurrency introduces new classes of software bugs.