Threading is a difficult concept to get your mind around.
Conceptually, threads provide parallel execution paths, which appear to execute concurrently. On a multiple core processor they may actually be running simultaneously. On a single core processor, they don't actually run concurrently, but they appear to.
To use multi-threading effectively, you have to be able to break down a problem in a way where you can imagine that having two functions running simultaneously will benefit you. In your case, you desire to read information in one function, while processing the information in another completely separate function. Once you can see how to do that, you just have to run the functions on separate threads, and figure out how to get the information safely from one function to the other.
I would suggest writing a function that reads from the file, and stores the information in a queue or buffer of some sort. Write another function that takes information from the buffer or queue, and processes the information. Adhere to the rule that the read function only writes to the queue, and the processing function only reads from the queue.
Once you have those functions constructed, tackle the issue of running the functions on threads. The general concept is that you will launch a thread with the read function, and another thread with the processing function. Then you have to 'join' the threads when they get done doing what they are doing.
For the read thread, it is straight forward. Once the file has been read, and the information is all in the queue, it is done. The processing thread is a little more difficult. It needs to figure out when the information is going to quit coming. It may be necessary for the reading function to add something to the queue to indicate that the reading is done.
There are a number of ways to create the threads and run the functions on the threads. I'm pretty sure that your instructor is recommending ways of doing that.