Since I use one thread for 25min to filter one fastq.gz file, I would like to use more than one threads to filter one file in order to speed up the whole process. Is it possible?
Maybe, but that will depend strongly on what "filter" means. If the "filter" is a fairly trivial procedure then likely your process will be IO-bound and multiple threads won't help you. Conversely, if "filter" is CPU intensive and you have multiple cores on the hardware then threads could give an impressive speed-up.
If you don't know how heavy "filter" is, profile it (eg. with Devel::NYTProf).