1. A method for processing multi-source data for use in a data processing system receiving data from a plurality of data sources, comprising: reading data from a first data source; determining whether any data exists at a position pointed by a first pointer in a queue, wherein the first pointer corresponding to the first data source; performing a first operation if data exists at the position pointed by the first pointer in the queue, wherein the first operation comprising: processing an overlapped portion of the data read from the first data source and the data pointed by the first pointer in the queue, where the overlapped portion begins from the position pointed by the first pointer; storing the processed data to the queue from the position pointed by the first pointer; re-directing the first pointer to a position subsequent to the processed data in the queue; storing a non-overlapped portion of the data read from the first data source and the data pointed by the first pointer in the queue to the queue from the position pointed by the first pointer; and re-directing the first pointer to a position subsequent to the non-overlapped portion in the queue; and outputting the processed data to the data processing system for further processing if the data in the queue is processed with data from each of the data sources.