1. A multi-threaded processor, comprising: a processing pipeline including a number of stages, each stage processing at least one instruction, each instruction belonging to one of a plurality of threads; and a fetch unit forming one of the stages of the pipeline and determining from which thread to fetch an instruction for processing by the processing pipeline, the fetch unit receiving information from at least one other stage of the processing pipeline and determining a processing time of the processing pipeline occupied by each thread based on the received information, the fetch unit determining from which thread to fetch an instruction for processing by the processing pipeline based on the determined processing time for each thread.