«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему обнаружение взаимоблокировок отключено при импорте пакета Net/Http?

Почему обнаружение взаимоблокировок отключено при импорте пакета Net/Http?

Опубликовано 8 ноября 2024 г.
Просматривать:414

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

Почему в этом коде не возвращается ошибка взаимоблокировки?

Приведенный код импортирует пакет net/http, который инициализирует выполняющие горутины фоновое голосование. Это непреднамеренно отключает детектор взаимоблокировки, предотвращая возврат ожидаемой ошибки взаимоблокировки.

Чтобы понять это поведение, рассмотрите отрывок кода:

package main

import (
    "fmt"
    "net/http"
)

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

В этом случае основная функция создает канал и отправляет в него значение, что может привести к взаимоблокировке. Однако, поскольку пакет net/http был импортирован, детектор взаимоблокировок отключен и ошибка не возвращается.

Если импорт удален:

package main

import "fmt"

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

Ошибка взаимоблокировки теперь корректно возвращается, поскольку горутины фонового опроса не активны.

Это поведение соответствует обсуждению проблемы GitHub: https://github.com/golang /go/issues/12734, где объясняется, что импорт пакета net/http отключает детектор взаимоблокировок.

Заявление о выпуске Эта статья перепечатана по адресу: 1729734072. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3