Por que precisamos de bloqueios para threads, se temos GIL?

Eu acredito que é uma pergunta estúpida, mas ainda não consigo encontrá-la. Na verdade, é melhor separá-lo em duas perguntas:

1) Estou certo de que poderíamos ter muitos threads, mas por causa do GIL em um momento apenas um thread está sendo executado?

2) Se sim, por que ainda precisamos de bloqueios? Usamos bloqueios para evitar o caso em que dois threads estão tentando ler / gravar algum objeto compartilhado, porque o GIL twi threads não pode ser executado em um momento, podem?

questionAnswers(3)

yourAnswerToTheQuestion