how to create new Thread 1 in the main thread, and then creates Pipe1 and Pipe2 in the thread 1, New Thread 1 first creates pipes Pipe1 and Pipe2 and then New Thread 2. New Thread 1 then sends the file name, via Pipe1, to New Thread 2. New Thread 2 then opens a file, reads the first five lines, and sends the lines back to New Thread 1 via Pipe2. New Thread 2 only searches its current working directory for the file, unless a full pathname is given. In this case New Thread 2 uses the full pathname to open the file. If the file does not exist, New Thread 2 should return an error message, as shown in the example printout of the TextArea in the main thread. Also, if a file contains less than 5 lines, New Thread 2 should return all the lines.