you probably mean 1024 file handles are in use.
but anyhow. you need to debug it yourself.
Try doing thread dump to see what all that treads are and what are they doing.
This way you will see who is creating it and why.
Also do lsof -p <id of process> to see what are all files open.
It is possible that your app is leaking file handles or that it is just behaving completely normally and you have just too low limits.
as 1024 (default for linux) for ulimit is way too low for any reasonable application that needs to do something.