Seria possível reutilizar o código para fazer um pisca- pisca de Natal ?
Acredito que boa parte da lógica sim, a diferença é que as cores divergentes podem ligar na mesma hora sem conflito, já no semáforo não.
Então , me dá uma dica ai , por que o semáforo vai ligar vermelho , amarelho e verde
ai você tem a sequencia 1, 2, 3 e já no pisca -pisca você poderá ter 
1, 1, 1
1, 2, 1,
1,3, 1
1, 3, 2
Considerando que as três piscam ao mesmo tempo .
Sim, quando fiz um semáforo eu utilizei o tempo para controlar as luzes, ou seja, dei um determinando tempo de execução para cada thread e com isso a sequência surgiu. Partindo do principio que seu pisca pisca pode ter varias combinações e cores diferente é só você utilizar o tempo (como eu fiz) só que ao invés de padronizar o tempo para cada uma utiliza a classe java.util.Random para gerar um tempo aleatório, lembrando é claro que limitar o tempo máximo com Random.
Edit: Caso queira padronizar dai você pode utilizar a lógica de permutação, para não repetir sequência de luzes.
Amigo eu vou para a faculdade sábado você pode me ajudar?
obrigado ai , poderá sinalizar ela ai .valeu pela dica.