"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que a detecção de deadlock está desativada ao importar o pacote Net/Http?

Por que a detecção de deadlock está desativada ao importar o pacote Net/Http?

Publicado em 2024-11-08
Navegar:641

Why is Deadlock Detection Disabled When Importing the Net/Http Package?

Por que um erro de deadlock não é retornado neste código?

O código fornecido importa o pacote net/http, que inicializa Goroutines que executam pesquisa de fundo. Isso desativa inadvertidamente o detector de deadlock, evitando que o erro de deadlock esperado seja retornado.

Para entender esse comportamento, considere o trecho de código:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    var ch = make(chan int)
    ch 

Nesse caso, a função main cria um canal e envia um valor para ele, potencialmente causando um deadlock. No entanto, como o pacote net/http foi importado, o detector de deadlock é desabilitado e nenhum erro é retornado.

Se a importação for removida:

package main

import "fmt"

func main() {
    var ch = make(chan int)
    ch 

O erro de deadlock agora é retornado corretamente porque as Goroutines de pesquisa em segundo plano não estão ativas.

Esse comportamento é consistente com a discussão no problema do GitHub: https://github.com/golang /go/issues/12734, onde é explicado que a importação do pacote net/http desativa o detector de deadlock.

Declaração de lançamento Este artigo foi reimpresso em: 1729734072 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3