Segue minha implementação da aula.
Classe Principal:
package br.com.alura.threads.busca_textual;
import java.util.Scanner;
public class Principal {
    public static void main(String[] args) throws InterruptedException {
        try {
            
            // Thread não tem uma ordem de execução!
            Scanner scanner = new Scanner(System.in);
            String nomeArquivo = "";
            System.out.print("Digite o nome a ser procurado: ");
            String nomeBuscado = scanner.next();
            System.out.println("Digite a  op\u00E7\u00E3o de arquivo a ser procurado: ");
            System.out.println("[1] - assinaturas1.txt");
            System.out.println("[2] - assinaturas2.txt");
            System.out.println("[3] - autores.txt");
            Integer opcaoEscolhida = scanner.nextInt();
            switch (opcaoEscolhida) {
            case 1:
                nomeArquivo = "src/br/com/alura/threads/busca_textual/assinaturas1.txt";
                chamaThread(nomeBuscado, nomeArquivo);
                break;
            case 2:
                nomeArquivo = "src/br/com/alura/threads/busca_textual/assinaturas2.txt";
                chamaThread(nomeBuscado, nomeArquivo);
                break;
            case 3:
                nomeArquivo = "src/br/com/alura/threads/busca_textual/autores.txt";
                chamaThread(nomeBuscado, nomeArquivo);
                break;
            default:
                scanner.close();
                throw new IllegalArgumentException("N\u00E3o existe essa op\u00E7\u00E3o! Tente novamente!");
            }
            scanner.close();
        } catch (IllegalArgumentException e) {
            System.err.println(e.getMessage());
        }
    }
    public static void chamaThread(String nomeBuscado, String nomeArquivo) throws InterruptedException {
        Runnable nomeAProcurar = new BuscaNomes(nomeBuscado, nomeArquivo);
        Thread thread = new Thread(nomeAProcurar, "Thread_" + nomeArquivo);
        Thread.sleep(250);
        thread.start();
    }
}
Classe de busca de nomes:
package br.com.alura.threads.busca_textual;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class BuscaNomes implements Runnable {
    private String nomeArquivo;
    private String nomeBuscado;
    public BuscaNomes(String nomeBuscado, String nomeArquivo) {
        this.nomeBuscado = nomeBuscado;
        this.nomeArquivo = nomeArquivo;
    }
    @Override
    public void run() {
        try {
            Scanner scanner = new Scanner(new File(nomeArquivo));
            Integer numLinha = 1;
            while (scanner.hasNextLine()) {
                String linha = scanner.nextLine();
                if (linha.toLowerCase().contains(nomeBuscado.toLowerCase())) {
                    System.out.format("Encontrei o nome %s na linha %d no arquivo %s! Boa!", linha, numLinha,
                            nomeArquivo);
                    return;
                }
                numLinha += 1;
            }
            System.out.format("O nome %s n\u00E3o foi encontrado no arquivo %s! Que pena!", nomeBuscado, nomeArquivo);
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        }
    }
}
Alguma sugestão?
Obrigado!
 
            