Las variable extern son tipo global por lo que es el programa el que la inicializa, siempre no que no sea un puntero, claro. Si es un puntero, el programa inicializara y alocatara memoria para un puntero y tendrás que buscar memoria en uno de los dos hilos de ejecucion, nunca en los dos, ya que el puntero es global al declararlo como extern y por lo tanto, su contenido publico.