Quais são as diferenças pré condição, pós condição e invariante na terminologia de computador [fechado]

Eu estou lendo o livroConcorrência Java na prática e ficar um pouco confuso com esses termos:

Pré condiçãoCondição pósInvariantes

Alguém por favor pode me explicar (com um exemplo, se for possível)?