1. A method for simultaneous multithreading in a processor, the method comprising: measuring SMT-performance value of a software code, wherein the software code is executed in a simultaneous multithreading mode by the processor; measuring non-SMT-performance value of the software code, wherein the software code is executed in a non-simultaneous multithreading mode by the processor; comparing the SMT-performance value with the non-SMT-performance value; and dispatching the software code for an execution mode by the processor, depending on the comparison, wherein the execution mode is at least one of SMT-mode and non-SMT-mode.