2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Goroutines in eadem inscriptionis spatio currunt, ut accessus ad memoriam communium congruenter accedat.Goroutines memoriam communicant per communicationem, quam memoriam communicant.
Relatio generis canalis est exsecutio certae modi CSP et pro multiplici goroutine communicatione adhibetur. Interne efficit synchronizationem ut concursus salus curet.
Similis tabula, canalis etiam refertur ad structuram datam subiectam quae a facundo creata est.
Cum canalem effingimus vel ad functionem parametri transeuntis utimur, sicut canalem referendum imitamur, ita RECENS et callee idem canalis obiectum referent. Ut alia genera referentia, nulla pretii canalis nil est.
Cum canalem definis, etiam rationem bonorum ad canalem missos definire debes. canales creari possunt utens constructum-in fac() functione;
make (chan Type)
make (chan Type,capacity)
channel<-value //发送value 到channel
<-channel //接收并将其丢弃
x:=<-channel //从 channel 中接收数据,并賦偵给x
x,ok:=<-channel //功能同上,同时检查通道是否已关闭或者是否为空
Defalta, canalis caudices accipiendi et mittendi, nisi alter finis sit paratus, simpliciorem facit synchronizationem goroutine sine necessitate comae expressae.
Alveus insuffitus est alveus qui nullam facultatem habet ad ullum valorem conservandum antequam recipiat.
Hoc genus canalis requirit ut goroutine missio et goroutina recipienda parati sint simul ad operationes mittendis et recipiendis perficiendas. Si duae goroutines simul non paratae sunt, alveus goroutine efficiet qui operationem mittendi vel recipiendi primum impedit et exspectabit.
Hoc commercium mittendi et recipiendi ad canalem in se synchronum est. Nulla operatio sine altera esse potest.
Sequens figura ostendit quomodo duae goroutines valentes utentes canales non gratuitos communicare possunt;
make (chan Type)//等价于make (chan Type,0)
Si nulla magnitudo quiddam specificatur, canalis est synchronus et ideo caudices donec mittens paratus est mittere et acceptor recipere paratus est.
Canalis buffered est canalis qui unum vel plura bona antequam recipi potest.
Hoc genus canalis non requirit ut goroutine mittere et accipere simul complere debent. Canales etiam diversas condiciones habebunt quae scandalum mittunt et actiones accipient. Actio recipienda tantum obstaculum erit si nullius valoris in canali recipiendi. Actio mittendi tantum obstabit si canalis quiddam non habet praesto ad valorem missum accommodandum.
Hoc magnam differentiam ducit inter canales buffered et non effusos: canales immoderati spondent se mittere et accipientes goroutines notitias simul permutare: canales buffered nullum talem cautionem habent.
make (chan Type,capacity)
Si quiddam capacitatis detur, canalis asynchronus est. Quamdiu quiddam insuetum spatium mittendi notitias vel notitias quae recipi possunt, communicatio sine impedimento procedit.
Canalis ok ad deprehendendum uti potest utrum canalis adhuc apertus sit. Si canalis clausus est, notitia non legetur.
num ,ok:=<-ch
Potest deprehendere si canalis clausus est.Defalta quaestio duplicem canalem habet, id est, ei datam mittere et inde datam accipere potes.
Saepe tamen videmus canalem pro modulo praetereuntem et utilitas expectatur utendum in unam partem, vel tantum ut notitias mittas vel modo ut notitias accipias. Hoc tempore directionem canalis definire possumus. Declaratio unius viae cameli variabilis valde simplex est, hoc modo:
var ch1 chan int //ch1双向
var ch2 chan<-float64 //ch2单向,只能用于写float64数据
var ch3 <-chan int //ch3单向,只能用于读int数据
chan<- significat quod data tibia intrat, et data tibia inscripta est, quae output RECENS.
<-chan indicat e tibia datam esse.
Canalis implicite potest converti in quenam unam, tantum recipiens vel tantum mittens, sed unum canalem in alveum normalem converti non potest;