Sobes.tech
Middle+

Para que é que serve a palavra-chave volatile na programação?

sobes.tech IA

Resposta da IA

volatile é utilizado para indicar ao compilador e ao processador que o valor de uma variável pode ser alterado por um thread de execução independente ou por um evento externo em relação à execução atual do processador (por exemplo, um dispositivo de entrada/saída).

Aplicações:

  1. Multithreading: Garante que cada vez que a variável é acedida, o seu valor é lido a partir da memória RAM e não de um registo do processador ou cache. Isto previne otimizações do compilador que poderiam resultar em valores desatualizados em ambientes multithread.
  2. Interação com hardware: É usado para variáveis que representam o estado de registos de hardware ou portas de entrada/saída, cujo valor pode mudar de forma imprevisível para o programa.

Em Swift e Objective-C, volatile é usado de forma semelhante a C/C++.

Exemplo de uso em C/Objective-C:

volatile int sharedFlag; // Variável partilhada, acessível a partir de diferentes threads