No, the design isn't good.
The class that instantiates the Executor pool, reads the file, and doles out the work is the only one that needs to know about EOF. The threads that take their portion and do the work don't have to know.
Don't use raw Threads; leverage the new concurrency classes like Excecutor.