Ano ang isang go routine?
Ano ang isang go routine?

Video: Ano ang isang go routine?

Video: Ano ang isang go routine?
Video: Ano ba ang CORRECT ORDER ng isang SKINCARE ROUTINE? | Jan Angelo 2024, Nobyembre
Anonim

Ang mga Goroutine ay mga function o pamamaraan na tumatakbo kasabay ng iba pang mga function o pamamaraan. Ang mga Goroutine ay maaaring isipin bilang magaan na mga thread. Ang halaga ng paglikha ng a Goroutine ay maliit kung ikukumpara sa isang thread. Kaya ito ay karaniwan para sa Pumunta ka mga application na magkaroon ng libu-libong Goroutine na tumatakbo nang sabay-sabay.

Dito, ano ang isang channel?

Sa Pumunta ka wika, a channel ay isang daluyan kung saan nakikipag-ugnayan ang isang goroutine sa isa pang goroutine at ang komunikasyong ito ay walang lock. O sa madaling salita, a channel ay isang pamamaraan na nagbibigay-daan sa isang goroutine na magpadala ng data sa isa pang goroutine.

Higit pa rito, ilang Goroutine ang maaaring tumakbo nang sabay-sabay? Sa isang makina na may naka-install na 4 GB ng memorya, nililimitahan nito ang maximum na bilang ng goroutine sa bahagyang mas mababa sa 1 milyon. Praktikal na lumikha ng daan-daang libo ng goroutine sa parehong puwang ng address.

Dahil dito, paano mo ginagamit ang isang Goroutine?

Upang i-invoke ang function na ito sa a goroutine , gamitin pumunta f(s). Itong bago goroutine ay isasagawa kasabay ng pagtawag. Maaari mo ring simulan ang a goroutine para sa isang hindi kilalang function na tawag. Ang aming dalawang function na tawag ay tumatakbo nang magkahiwalay goroutine ngayon.

Maaari bang magbalik ng halaga ang isang Goroutine?

Takbo goroutine (asynchronously) at kunin ibalik ang halaga mula sa pag-andar ay mahalagang magkasalungat na aksyon. Ngunit kapag nagtalaga ka ng function ibalik ang halaga sa isang variable na inaasahan mong magkaroon nito halaga sa loob ng variable. Kaya kapag ginawa mo iyon x:= go doSomething(arg) sinasabi mo: Go on, don't wait for the function!

Inirerekumendang: