learn pthread, static, extern, etc