goroutine がチャネルに書き込まない

王林
リリース: 2024-02-06 08:30:08
転載
776 人が閲覧しました

goroutine 未写入通道

質問の内容

初めて利用するのですが、次のコードの使用に問題があります

リーリー

ゴルーチン pdfgeneratefromhtml から情報を受け取りますが、buf は値を受け取らないため、このコードが配置されている関数はサイズ 0 を返します。バイト。

ご協力をよろしくお願いいたします。よろしくお願いします


正解


このコードは本質的に同期です。ハンドラーはバイトのスライスを生成し、これらのバイトの準備ができたら c.blob メソッドを使用してそのスライスを返します。 投稿されたコードは goroutine で作業を開始しますが、

は作業が完了するのを待たずに

、null バイトのスライスを返します。 この問題は、ゴルーチンを削除することで解決できます。

リーリー

このコードの唯一の問題は、すべてのデータをメモリにロードすることですが、

pdf.generatefromhtml

[]byte を返す場合、これは避けられません。 必要に応じて、pdf.generatefromhtml を更新して io.reader を返し、c.stream. を使用することでこれを改善できます。

以上がgoroutine がチャネルに書き込まないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート