Hyper-Threading Technology allows two logical processors to simultaneously share one physical processor's execution resources. It appears to the operating system as two processors. While the die size increase is small, adding Hyper-Threading Technology presented large complexity challenges. Different microarchitecture components use different resource sharing approaches, such as partitioning resources between logical processors, using thresholds to limit maximum usage, or fully sharing caches between logical processors. Performance tests showed good gains from Hyper-Threading Technology, especially when running dissimilar applications simultaneously.