This thesis presents the methodologies on thread parallelism and thread affinity with autonomic control techniques on many core systems. Parallel programs need to manage the time tradeoff between synchronization and computation. A high parallelism may decrease computing time but meanwhile increase synchronization cost among threads. Also thread migration among cores hugely impacts on system performance and cause performance degradation. We employ autonomic control techniques to design safe, efficient and predictable controllers, which enable monitoring and adjusting the choice of parallelism and the thread affinity dynamically while keeping overhead low.