Exercício Linguagens de Programação Desenvolva uma classe, chamada FazTarefa, a qual deve ser executada como uma thread. Essa classe deve conter apenas um atributo: total: um número inteiro que identifica o número de tarefas que a thread irá executar. O valor de total é definido, através de um método set, no instante em que o objeto que representa a thread é criado. Por simplicidade, a única tarefa a ser executada pela thread é executar um comando de repetição onde, em cada iteração, são impressos o nome da thread (definido no momento em que a thread é criada) e em seguida a tarefa que ele está executando. As tarefas são identificadas por números inteiros sequencias que variam entre 1 e total. Em seguida, desenvolva uma classe Principal na qual os seguintes passos são seguidos: 1. Dois vetores são declarados, um para os objetos da classe FazTarefa e outro para os objetos da classe Thread. 2. O usuário digita dois números, que definem o número de threads e o número de tarefas a serem executadas por cada thread. Para simplificar, o número de tarefas pode ser igual para todas as threads, mas cada thread pode ter um número variado de tarefas. 3. Os dois vetores são criados de acordo com o número de threads definidas pelo usuário. 4. Através de comandos de repetição, devem ser criados todos os objetos, definidos o total de tarefas e criadas as threads. As threads devem ser nomeadas seguindo o seguinte padrão: Thread_N, sendo que N varia entre 1 e o número total de threads. 5. Através de comandos de repetição, devem ser iniciadas todas as threads. Execute o programa e observe a sequência em que as threads são executadas. Essa sequência não é sempre igual, e depende do gerenciamento de threads feito pela máquina virtual.