A multi threading simulated annealing which can be used to solve any optimization problem running in parallel in all machine cores. Optimization problem definition is open and explained through examples. It is implemented in C and only requires libpthread for running.