Logo Passei Direto
Buscar
Pergunta 6 Analisando a linha de código a seguir, podemos observar a utilização de threads e semáforos. from threading import * import time s=Semaphore(2) def example(nome,idade): for i in range(3): s.acquire() print("Olá",nome, idade) time.sleep(2) s.release() threadA=Thread(target=example, args=("João",15)) threadB=Thread(target=example, args=("José",20)) threadC=Thread(target=example, args=("Maria",26)) threadD=Thread(target=example, args=("Ana",29)) threadA.start() threadB.start() threadC.start() threadD.start() Considerando a execução de semáforos com 6 CPUS do programa apresentado, assinale a alternativa correta. a. 6 CPUs – Threads 1, 2 e 3 executadas 4 vezes. b. 6 CPUs – Threads 1 a 12 executadas uma única vez. c. 6 CPUs – Threads 1, 2, 3, 4, 5 e 6 executadas 2 vezes. d. 6 CPUs – Threads 1, 2, 3, 4, 5 e 6 executadas 4 vezes. e. 6 CPUs – Threads 1 e 2 executadas 3 vezes.
User badge image
Pedro Henrique

ontem

Respostas

User badge image

Ed Verified user icon

ontem

Vamos analisar o código apresentado e as opções. O código utiliza um semáforo (`s=Semaphore(2)`), que permite que no máximo 2 threads acessem a seção crítica ao mesmo tempo. Cada thread executa a função `example`, que imprime uma mensagem e dorme por 2 segundos, repetindo isso 3 vezes. Temos 4 threads (A, B, C e D) que tentam executar a função. Como o semáforo permite apenas 2 threads simultaneamente, as threads vão ser executadas em pares. Agora, vamos analisar as alternativas: a) 6 CPUs – Threads 1, 2 e 3 executadas 4 vezes. - Incorreto, pois temos 4 threads, não 3. b) 6 CPUs – Threads 1 a 12 executadas uma única vez. - Incorreto, pois não existem 12 threads. c) 6 CPUs – Threads 1, 2, 3, 4, 5 e 6 executadas 2 vezes. - Incorreto, pois temos apenas 4 threads. d) 6 CPUs – Threads 1, 2, 3, 4, 5 e 6 executadas 4 vezes. - Incorreto, pois temos apenas 4 threads. e) 6 CPUs – Threads 1 e 2 executadas 3 vezes. - Correto, pois as threads 1 e 2 (A e B) podem ser executadas 3 vezes cada uma, enquanto as threads 3 e 4 (C e D) também serão executadas, mas em pares, respeitando o limite do semáforo. Portanto, a alternativa correta é: e) 6 CPUs – Threads 1 e 2 executadas 3 vezes.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina