」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼在使用 `go` 語句時要在主 Goroutine 中計算 `input.Text()` ?

為什麼在使用 `go` 語句時要在主 Goroutine 中計算 `input.Text()` ?

發佈於2024-11-20
瀏覽:147

Why is `input.Text()` Evaluated in the Main Goroutine When Using `go` Statements?

為什麼在主Goroutine 中計算input.Text()

Go 程式語言的第8 章中,以下語句是關於並發echo 伺服器:

由go 啟動的函數的參數在執行go 語句本身時進行評估;因此input.Text() 在主goroutine 中被求值。

這條語句的意思是,當執行 go 語句時,立即對 input.Text() 函數求值,並將其結果傳遞給 go echo () 協程。這與常規函數呼叫相反,常規函數呼叫在呼叫函數時計算函數參數,並將結果傳遞給被呼叫函數。

造成這種差異的原因是 go 語句開始一個新的goroutine,並且 goroutine 與主 goroutine 並發執行。如果 go 啟動的函數的參數在呼叫函數時被求值,則主 Goroutine 必須等待函數完成才能啟動新的 Goroutine。這將違背使用 goroutine 的目的,即啟用並發。

透過在執行 go 語句本身時評估 go 啟動的函數的參數,主 goroutine 不必等待該函數來完成。這允許同時啟動 goroutine,這是所需的行為。

最新教學 更多>
  • 為什麼在 PHP 中回顯 MySQL 查詢會回傳「資源 id #6」而不是字串?
    為什麼在 PHP 中回顯 MySQL 查詢會回傳「資源 id #6」而不是字串?
    將MySQL 查詢結果回顯為字串在PHP 中,一個常見的任務是從MySQL 資料庫中檢索資料並將其顯示在Web 上頁。但是,當嘗試回顯 MySQL 查詢的結果時,您可能會遇到錯誤“Resource id #6”,而不是預期的字串。 了解資源 ID當使用 mysql_query() 等函數執行 MyS...
    程式設計 發佈於2024-11-20
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-11-20
  • 為什麼我的 Java Socket 用戶端收不到伺服器回覆?
    為什麼我的 Java Socket 用戶端收不到伺服器回覆?
    Java Socket: 處理無回應的伺服器回覆客戶端請求在所呈現的場景中,客戶端成功向伺服器發送字符串,提示伺服器進行處理和回應。然而,客戶端無法收到伺服器的回覆。 根本原因:問題源自於缺少新增行終止符(「\r\n」)寫入輸出流的字串結尾。這會阻礙客戶端和伺服器之間的通信,導致客戶端無法注意到伺服...
    程式設計 發佈於2024-11-20
  • 為什麼我在 C# 中遇到「無法連線到指定的 MySQL 主機」的問題?
    為什麼我在 C# 中遇到「無法連線到指定的 MySQL 主機」的問題?
    C# 中「無法連線到指定的MySQL 主機」錯誤的故障排除遇到錯誤「無法連線到任何指定的MySQL主機」時MySQL 主機」在C# 中執行MySQL連接程式碼時,檢查幾個方面至關重要:連接字串參數:如提供的答案所述,順序和連接字串內參數的間距可能很關鍵。 Pwd=myPassword;Server=...
    程式設計 發佈於2024-11-20
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而不是:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST數組:表單提交後使用var_dump檢查$_POST 陣列的內容。...
    程式設計 發佈於2024-11-20
  • 如何防止惡意 PHP 檔案上傳:綜合指南
    如何防止惡意 PHP 檔案上傳:綜合指南
    緩解惡意PHP 上傳:綜合指南為了解決某人透過線上表單上傳惡意PHP 檔案的問題,本文深入研究了PHP文件上傳領域以及與惡意內容相關的風險。 PHP 檔案上傳:超越圖像格式雖然最初的目的是僅上傳圖片,但問題是:如何防止惡意 PHP 檔案在壓縮資料夾中上傳?這種擔憂超出了圖像檔案類型的範圍,因為有人可...
    程式設計 發佈於2024-11-20
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-11-20
  • 如何使用 PHP 從 MySQL 資料庫動態產生 HTML 表?
    如何使用 PHP 從 MySQL 資料庫動態產生 HTML 表?
    使用MySQL 和PHP 動態創建HTML 表儘管有描述如何使用PHP 和MySQL 在HTML 中構建表的帖子,但之後頻繁更改MySQL 列標題創建表可能會很麻煩。本文探討了一種自動更新 PHP 程式碼的方法,讓您可以指定表格名稱並列印表格,而無需手動插入 標籤。 $table = "...
    程式設計 發佈於2024-11-20
  • 為什麼 Python 在 Windows 上不被辨識為指令?
    為什麼 Python 在 Windows 上不被辨識為指令?
    解決Windows 上的「Python:指令無法辨識」問題嘗試在Windows 中執行Python 指令時,使用者可能會遇到以下錯誤訊息「'python'未被識別為內部或外部命令。」出現此問題的原因是Python的可執行檔路徑未包含在系統PATH環境變數中。幸運的是,解決這個問題很簡...
    程式設計 發佈於2024-11-20
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-11-20
  • 如何處理 Go 的 MGO DialWithTimeout() 失敗所引起的恐慌?
    如何處理 Go 的 MGO DialWithTimeout() 失敗所引起的恐慌?
    處理Go的MGO中的恐慌:DialWithTimeout()失敗考慮以下情況:您有一個使用mgo庫連接到MongoDB實例的Go函數。然而,您希望在不使程式崩潰的情況下處理 MongoDB 不可用的情況。 原始程式碼試圖透過使用延遲/恢復機制來實現這一點。然而,恐慌仍然導致程序退出。讓我們來探索一種...
    程式設計 發佈於2024-11-20
  • Eclipse Java 程式碼範本如何提高您的工作效率?
    Eclipse Java 程式碼範本如何提高您的工作效率?
    利用 Eclipse Java 程式碼範本來提高工作效率Eclipse 是著名的 Java 開發環境,它使開發人員能夠透過首選項視窗。使用者可以透過鍵盤快捷鍵啟動這些模板,從而簡化編碼流程並提高工作效率。 實務上有用的 Java 程式碼範本而 Eclipse提供了豐富的內建庫模板,開發人員分享了自訂...
    程式設計 發佈於2024-11-20
  • 如何解決跨來源 AJAX 請求中的「Access-Control-Allow-Origin 不允許來源」錯誤?
    如何解決跨來源 AJAX 請求中的「Access-Control-Allow-Origin 不允許來源」錯誤?
    問題:「Origin is Not allowed by Access-Control-Allow-Origin」使用JavaScript 執行跨域AJAX 要求時,可能會遇到以下錯誤: Origin http://localhost:8080 is not allowed by Access-Co...
    程式設計 發佈於2024-11-20
  • 如何在 Python 中列印異常訊息
    如何在 Python 中列印異常訊息
    Python 中列印異常Python 提供了強大的異常處理機制來管理程式執行過程中的錯誤和意外事件。要列印 except: 區塊中引發的實際異常/錯誤,捕捉異常物件非常重要。 Python 2.6 及更高版本(包括Python 3.x)在Python 2.6及更高版本中,包括Python 3.x,您...
    程式設計 發佈於2024-11-20
  • Next.js:增量靜態再生(ISR)
    Next.js:增量靜態再生(ISR)
    具有增量靜態再生 (ISR) 我們可以更新靜態內容,而無需重新建立整個網站。我們可以透過為大多數請求提供預先建立的靜態頁面來減少伺服器負載。我們可以在下次創建時間較長之前處理大量內容頁面。 讓我們從一個例子開始 : export const revalidate = 30 exp...
    程式設計 發佈於2024-11-20

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3