Quando um novo thread começa a ser executado, seus registros são carregados de seu contexto armazenado, exatamente como um thread que já está em execução. O encadeamento que cria o encadeamento pode preencher a estrutura de contexto do novo encadeamento da maneira que preferir antes de adicioná-lo à tabela de encadeamentos em execução do sistema operacional.
Basicamente funciona assim:
-
Uma nova estrutura de tarefas é alocada.
-
Os campos nessa nova estrutura de tarefa são preenchidos, no entanto, desejados. Isso inclui registros, o ponteiro da pilha e assim por diante.
-
A estrutura da tarefa é marcada como pronta para ser executada e adicionada à lista de tarefas do agendador.
-
O agendador decide agendar o novo thread, carrega seu contexto da estrutura da tarefa e alterna para ele.
-
O encadeamento agora tem todos os registros, pilha e ponteiro de instrução que o encadeamento de criação preencheu para ele.