Date: Fri, 29 Mar 2024 16:19:16 +0800 (CST) Message-ID: <499902106.651.1711700356920@localhost.localdomain> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_650_2104355388.1711700356919" ------=_Part_650_2104355388.1711700356919 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Go
=E8=AF=AD=E8=A8=80=E4=B8=AD=E7=9A=84goroutine
=E8=99=BD=E7=84=B6=E7=9B=B8=E5=AF=B9=E4=BA=8E=E7=B3=BB=E7=BB=9F=E7=BA=BF=
=E7=A8=8B=E6=9D=A5=E8=AF=B4=E6=AF=94=E8=BE=83=E8=BD=BB=E9=87=8F=E7=BA=A7=EF=
=BC=88=E5=88=9D=E5=A7=8B=E6=A0=88=E5=A4=A7=E5=B0=8F=E4=BB=852KB
=EF=BC=89=EF=BC=8C=EF=BC=88=E5=B9=B6=E4=B8=94=E6=94=AF=E6=8C=81=E5=8A=A8=
=E6=80=81=E6=89=A9=E5=AE=B9=EF=BC=89=EF=BC=8C=E8=80=8C=E6=AD=A3=E5=B8=B8=E9=
=87=87=E7=94=A8Java
=E3=80=81C++
=E7=AD=89=E8=AF=AD=
=E8=A8=80=E5=90=AF=E7=94=A8=E7=9A=84=E7=BA=BF=E7=A8=8B=E4=B8=80=E8=88=AC=E9=
=83=BD=E6=98=AF=E5=86=85=E6=A0=B8=E6=80=81=E7=9A=84=E5=8D=A0=E7=94=A8=E7=9A=
=84=E5=86=85=E5=AD=98=E8=B5=84=E6=BA=90=E4=B8=80=E8=88=AC=E5=9C=A84m<=
/code>=E5=B7=A6=E5=8F=B3=EF=BC=8C=E8=80=8C=E5=81=87=E8=AE=BE=E6=88=91=E4=BB=
=AC=E7=9A=84=E6=9C=8D=E5=8A=A1=E5=99=A8
CPU
=E5=86=85=E5=AD=98=
=E4=B8=BA4G
=EF=BC=8C=E9=82=A3=E4=B9=88=E5=BE=88=E6=98=8E=E6=98=
=BE=E6=89=8D=E7=94=A8=E7=9A=84=E5=86=85=E6=A0=B8=E6=80=81=E7=BA=BF=E7=A8=8B=
=E7=9A=84=E5=B9=B6=E5=8F=91=E6=80=BB=E6=95=B0=E9=87=8F=E4=B9=9F=E5=B0=B1=E6=
=98=AF1024
=E4=B8=AA=EF=BC=8C=E7=9B=B8=E5=8F=8D=E6=9F=A5=E7=9C=
=8B=E4=B8=80=E4=B8=8BGo
=E8=AF=AD=E8=A8=80=E7=9A=84=E5=8D=8F=E7=
=A8=8B=E5=88=99=E5=8F=AF=E4=BB=A5=E8=BE=BE=E5=88=B04*1024*1024/2=3D20=
0w
=EF=BC=8C=E8=BF=99=E4=B9=88=E4=B8=80=E7=9C=8B=E5=B0=B1=E6=98=8E=E7=
=99=BD=E4=BA=86=E4=B8=BA=E4=BB=80=E4=B9=88Go=E8=AF=AD=E8=A8=80=E5=A4=A9=E7=
=94=9F=E6=94=AF=E6=8C=81=E9=AB=98=E5=B9=B6=E5=8F=91=E3=80=82
=E4=BD=86=E6=98=AF=E5=9C=A8=E9=AB=98=E5=B9=B6=E5=8F=91=E9=87=8F=E4=B8=8B=
=E7=9A=84goroutine
=E9=A2=91=E7=B9=81=E5=88=9B=E5=BB=BA=E5=92=
=8C=E9=94=80=E6=AF=81=E5=AF=B9=E4=BA=8E=E6=80=A7=E8=83=BD=E6=8D=9F=E8=80=97=
=E4=BB=A5=E5=8F=8AGC
=E6=9D=A5=E8=AF=B4=E5=8E=8B=E5=8A=9B=E4=B9=
=9F=E4=B8=8D=E5=B0=8F=E3=80=82=E5=85=85=E5=88=86=E5=B0=86goroutine=E5=A4=8D=E7=94=A8=EF=BC=8C=E5=87=8F=E5=B0=91
goroutine
=E7=
=9A=84=E5=88=9B=E5=BB=BA/=E9=94=80=E6=AF=81=E7=9A=84=E6=80=A7=E8=83=BD=E6=
=8D=9F=E8=80=97=EF=BC=8C=E8=BF=99=E4=BE=BF=E6=98=AFgrpool
=E5=
=AF=B9goroutine
=E8=BF=9B=E8=A1=8C=E6=B1=A0=E5=8C=96=E5=B0=81=
=E8=A3=85=E7=9A=84=E7=9B=AE=E7=9A=84=E3=80=82=E4=BE=8B=E5=A6=82=EF=BC=8C=E9=
=92=88=E5=AF=B9=E4=BA=8E100W
=E4=B8=AA=E6=89=A7=E8=A1=8C=E4=BB=
=BB=E5=8A=A1=EF=BC=8C=E4=BD=BF=E7=94=A8goroutine
=E7=9A=84=E8=
=AF=9D=E9=9C=80=E8=A6=81=E4=B8=8D=E5=81=9C=E5=88=9B=E5=BB=BA=E5=B9=B6=E9=94=
=80=E6=AF=81100W
=E4=B8=AAgoroutine
=EF=BC=8C=E8=80=
=8C=E4=BD=BF=E7=94=A8grpool
=E4=B9=9F=E8=AE=B8=E5=BA=95=E5=B1=
=82=E5=8F=AA=E9=9C=80=E8=A6=81=E5=87=A0=E4=B8=87=E4=B8=AAgoroutine=E4=BE=BF=E8=83=BD=E5=85=85=E5=88=86=E5=A4=8D=E7=94=A8=E5=9C=B0=E6=89=
=A7=E8=A1=8C=E5=AE=8C=E6=88=90=E6=89=80=E6=9C=89=E4=BB=BB=E5=8A=A1=E3=80=82=
=E7=BB=8F=E6=B5=8B=E8=AF=95=EF=BC=8Cgoroutine
=E6=B1=A0=E5=
=AF=B9=E4=BA=8E=E4=B8=9A=E5=8A=A1=E9=80=BB=E8=BE=91=E7=9A=84=E6=89=A7=E8=A1=
=8C=E6=95=88=E7=8E=87=EF=BC=88=E9=99=8D=E4=BD=8E=E6=89=A7=E8=A1=8C=E6=97=B6=
=E9=97=B4/CPU=E4=BD=BF=E7=94=A8=E7=8E=87=EF=BC=89=E6=8F=90=E5=8D=87=E4=B8=
=8D=E5=A4=A7=EF=BC=8C=E7=94=9A=E8=87=B3=E6=B2=A1=E6=9C=89=E5=8E=9F=E7=94=9F=
=E7=9A=84goroutine
=E6=89=A7=E8=A1=8C=E5=BF=AB=E9=80=9F=EF=BC=
=88=E6=B1=A0=E5=8C=96goroutine
=E6=89=A7=E8=A1=8C=E8=B0=83=E5=
=BA=A6=E5=B9=B6=E6=B2=A1=E6=9C=89=E5=BA=95=E5=B1=82Go
=E8=B0=83=
=E5=BA=A6=E5=99=A8=E9=AB=98=E6=95=88=EF=BC=8C=E5=9B=A0=E4=B8=BA=E6=B1=A0=E5=
=8C=96goroutine
=E7=9A=84=E6=89=A7=E8=A1=8C=E8=B0=83=E5=BA=A6=
=E4=B9=9F=E6=98=AF=E5=9F=BA=E4=BA=8E=E5=BA=95=E5=B1=82Go
=E8=B0=
=83=E5=BA=A6=E5=99=A8=EF=BC=89=EF=BC=8C=E4=BD=86=E6=98=AF=E7=94=B1=E4=BA=8E=
=E9=87=87=E7=94=A8=E4=BA=86=E5=A4=8D=E7=94=A8=E7=9A=84=E8=AE=BE=E8=AE=A1=EF=
=BC=8C=E6=B1=A0=E5=8C=96=E5=90=8E=E5=AF=B9=E5=86=85=E5=AD=98=E7=9A=84=E4=BD=
=BF=E7=94=A8=E7=8E=87=E5=BE=97=E5=88=B0=E6=9E=81=E5=A4=A7=E7=9A=84=E9=99=8D=
=E4=BD=8E=E3=80=82
=E6=9F=90=E4=BA=9B=E4=B8=9A=E5=8A=A1=E6=A8=A1=E5=9D=97=E9=9C=80=E8=A6=81=
=E5=8A=A8=E6=80=81=E5=88=9B=E5=BB=BA=E5=8D=8F=E7=A8=8B=E6=9D=A5=E6=89=A7=E8=
=A1=8C=EF=BC=8C=E4=BE=8B=E5=A6=82=E5=BC=82=E6=AD=A5=E9=87=87=E9=9B=86=E4=BB=
=BB=E5=8A=A1=E3=80=81=E6=8C=87=E6=A0=87=E8=AE=A1=E7=AE=97=E4=BB=BB=E5=8A=A1=
=E7=AD=89=E7=AD=89=E3=80=82=E8=BF=99=E4=BA=9B=E4=B8=9A=E5=8A=A1=E9=80=BB=E8=
=BE=91=E4=B8=8D=E6=98=AF=E6=9C=8D=E5=8A=A1=E7=9A=84=E6=A0=B8=E5=BF=83=E9=80=
=BB=E8=BE=91=EF=BC=8C=E5=B9=B6=E4=B8=94=E4=BC=9A=E4=BA=A7=E7=94=9F=E5=8D=8F=
=E7=A8=8B=E3=80=82=E5=9C=A8=E6=9E=81=E7=AB=AF=E6=83=85=E5=86=B5=E4=B8=8B=E5=
=8F=AF=E8=83=BD=E4=BC=9A=E5=BC=95=E8=B5=B7=E5=8D=8F=E7=A8=8B=E5=A4=A7=E6=9A=
=B4=E6=B6=A8=EF=BC=8C=E5=BD=B1=E5=93=8D=E5=BA=95=E5=B1=82Go
=E5=
=BC=95=E6=93=8E=E5=85=A8=E5=B1=80=E7=9A=84=E5=86=99=E6=88=90=E8=B0=83=E5=BA=
=A6=EF=BC=8C=E9=80=A0=E6=88=90=E6=9C=8D=E5=8A=A1=E6=95=B4=E4=BD=93=E6=89=A7=
=E8=A1=8C=E5=BB=B6=E8=BF=9F=E8=BE=83=E5=A4=A7=E3=80=82
=E6=8B=BF=E5=BC=82=E6=AD=A5=E9=87=87=E9=9B=86=E4=BB=BB=E5=8A=A1=E6=9D=A5=
=E4=B8=BE=E4=B8=AA=E4=BE=8B=E5=AD=90=EF=BC=8C=E6=AF=8F=E9=9A=945=E7=A7=92=E6=89=A7=E8=A1=8C=E4=B8=80=E6=AC=A1=EF=BC=8C=E6=AF=8F=E6=AC=A1=
=E5=88=9B=E5=BB=BA
100
=E4=B8=AA=E5=8D=8F=E7=A8=8B=E6=9D=A5=E9=
=87=87=E9=9B=86=E4=B8=8D=E5=90=8C=E7=9A=84=E7=9B=AE=E6=A0=87=E7=AB=AF=E3=80=
=82=E5=BD=93=E9=87=87=E9=9B=86=E5=87=BA=E7=8E=B0=E7=BD=91=E7=BB=9C=E5=BB=B6=
=E8=BF=9F=E6=97=B6=EF=BC=8C=E4=B8=8A=E4=B8=80=E6=AD=A5=E7=9A=84=E4=BB=BB=E5=
=8A=A1=E5=B9=B6=E6=9C=AA=E6=89=A7=E8=A1=8C=E5=AE=8C=EF=BC=8C=E4=B8=8B=E4=B8=
=80=E6=AC=A1=E7=9A=84=E4=BB=BB=E5=8A=A1=E5=8F=88=E6=96=B0=E5=88=9B=E5=BB=BA=
=E5=8D=8F=E7=A8=8B=E5=BC=80=E5=A7=8B=E6=89=A7=E8=A1=8C=E3=80=82=E5=BD=93=E7=
=A7=AF=E7=B4=AF=E7=9A=84=E4=BB=BB=E5=8A=A1=E8=B6=8A=E6=9D=A5=E8=B6=8A=E5=A4=
=9A=EF=BC=8C=E4=BC=9A=E9=80=A0=E6=88=90=E5=8D=8F=E7=A8=8B=E7=9A=84=E6=9A=B4=
=E6=B6=A8=EF=BC=8C=E5=BD=B1=E5=93=8D=E5=85=A8=E5=B1=80=E7=9A=84=E6=9C=8D=E5=
=8A=A1=E6=89=A7=E8=A1=8C=E3=80=82=E9=92=88=E5=AF=B9=E8=BF=99=E4=B8=80=E7=B1=
=BB=E5=9C=BA=E6=99=AF=EF=BC=8C=E6=88=91=E4=BB=AC=E5=8F=AF=E4=BB=A5=E9=80=9A=
=E8=BF=87=E6=B1=A0=E5=8C=96=E7=9A=84=E6=8A=80=E6=9C=AF=E6=9D=A5=E5=B0=86=E4=
=BB=BB=E5=8A=A1=E8=BF=9B=E8=A1=8C=E5=AE=9A=E9=87=8F=E6=89=A7=E8=A1=8C=EF=BC=
=8C=E5=BD=93=E6=B1=A0=E4=B8=AD=E7=9A=84=E4=BB=BB=E5=8A=A1=E5=A0=86=E7=A7=AF=
=E5=88=B0=E8=BE=BE=E4=B8=80=E5=AE=9A=E9=87=8F=E6=97=B6=EF=BC=8C=E5=90=8E=E7=
=BB=AD=E7=9A=84=E4=BB=BB=E5=8A=A1=E5=BA=94=E5=BD=93=E9=98=BB=E5=A1=9E=E3=80=
=82=E4=BE=8B=E5=A6=82=EF=BC=8C=E6=88=91=E4=BB=AC=E8=AE=BE=E5=AE=9A=E6=B1=A0=
=E4=B8=AD=E4=BB=BB=E5=8A=A1=E7=9A=84=E6=9C=80=E5=A4=A7=E6=95=B0=E9=87=8F=E4=
=B8=BA10000
=E4=B8=AA=EF=BC=8C=E5=90=8E=E7=BB=AD=E4=B8=8D=E5=81=
=9C=E5=B0=86=E4=BB=BB=E5=8A=A1=E4=B8=A2=E5=88=B0=E6=B1=A0=E4=B8=AD=E6=89=A7=
=E8=A1=8C=EF=BC=8C=E5=BD=93=E8=B6=85=E8=BF=87=E6=B1=A0=E7=9A=84=E6=9C=80=E5=
=A4=A7=E6=95=B0=E9=87=8F=E6=97=B6=EF=BC=8C=E4=BB=BB=E5=8A=A1=E6=89=A7=E8=A1=
=8C=E5=B0=86=E4=BC=9A=E9=98=BB=E5=A1=9E=EF=BC=8C=E4=BD=86=E5=B9=B6=E4=B8=8D=
=E4=BC=9A=E5=BD=B1=E5=93=8D=E5=85=A8=E5=B1=80=E7=9A=84=E6=9C=8D=E5=8A=A1=E6=
=89=A7=E8=A1=8C=E3=80=82
Pool
goroutine
=E6=B1=A0=EF=BC=8C=E7=94=A8=E4=BA=8E=E7=AE=A1=E7=
=90=86=E8=8B=A5=E5=B9=B2=E5=8F=AF=E5=A4=8D=E7=94=A8=E7=9A=84goroutine=
=E5=8D=8F=E7=A8=8B=E8=B5=84=E6=BA=90=E3=80=82
Job
=E6=B7=BB=E5=8A=A0=E5=88=B0=E6=B1=A0=E5=AF=B9=E8=B1=A1=E7=9A=84=E4=BB=BB=
=E5=8A=A1=E9=98=9F=E5=88=97=E4=B8=AD=E7=AD=89=E5=BE=85=E6=89=A7=E8=A1=8C=E7=
=9A=84=E4=BB=BB=E5=8A=A1=EF=BC=8C=E6=98=AF=E4=B8=80=E4=B8=AAFunc=E7=9A=84=E6=96=B9=E6=B3=95=EF=BC=8C=E4=B8=80=E4=B8=AA
Job
=E5=
=90=8C=E6=97=B6=E5=8F=AA=E8=83=BD=E8=A2=AB=E4=B8=80=E4=B8=AAWorker=E8=8E=B7=E5=8F=96=E5=B9=B6=E6=89=A7=E8=A1=8C=E3=80=82
Func
=
=E7=9A=84=E5=AE=9A=E4=B9=89=E5=A6=82=E4=B8=8B=EF=BC=9A
type Func func(ctx context.Conte= xt)
Worke=
r
=E6=B1=A0=E5=AF=B9=E8=B1=A1=E4=B8=AD=E5=8F=82=E4=B8=8E=E4=BB=BB=E5=8A=A1=
=E6=89=A7=E8=A1=8C=E7=9A=84goroutine
=EF=BC=8C=E4=B8=80=E4=B8=
=AAWorker
=E5=8F=AF=E4=BB=A5=E6=89=A7=E8=A1=8C=E8=8B=A5=E5=B9=
=B2=E4=B8=AAJob
=EF=BC=8C=E7=9B=B4=E5=88=B0=E9=98=9F=E5=88=97=
=E4=B8=AD=E5=86=8D=E6=97=A0=E7=AD=89=E5=BE=85=E7=9A=84Job
=E3=
=80=82
=E4=BD=BF=E7=94=A8=E6=96=B9=E5=BC=8F=EF=BC=9A
import "github.com/g=
ogf/gf/v2/os/grpool"
=E4=BD=BF=E7=94=A8=E5=9C=BA=E6=99=AF=EF=BC=9A
=E7=AE=A1=E7=90=86=E5=A4=A7=E9=87=8F=E5=BC=82=E6=AD=A5=E4=BB=BB=E5=8A=A1= =E7=9A=84=E5=9C=BA=E6=99=AF=E3=80=81=E9=9C=80=E8=A6=81=E5=BC=82=E6=AD=A5=E5= =8D=8F=E7=A8=8B=E5=A4=8D=E7=94=A8=E7=9A=84=E5=9C=BA=E6=99=AF=E3=80=81=E9=9C= =80=E8=A6=81=E9=99=8D=E4=BD=8E=E5=86=85=E5=AD=98=E4=BD=BF=E7=94=A8=E7=8E=87= =E7=9A=84=E5=9C=BA=E6=99=AF=E3=80=82
=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=EF=BC=9A
func Add(ctx context.Context, f = Func) error func AddWithRecover(ctx context.Context, userFunc Func, recoverFunc Recover= Func) error func Jobs() int func Size() int func New(limit ...int) *Pool func (p *Pool) Add(ctx context.Context, f Func) error func (p *Pool) AddWithRecover(ctx context.Context, userFunc Func, recov= erFunc RecoverFunc) error func (p *Pool) Cap() int func (p *Pool) Close() func (p *Pool) IsClosed() bool func (p *Pool) Jobs() int func (p *Pool) Size() int
=E9=80=9A=E8=BF=87grpool.New
=E6=96=B9=E6=B3=95=E5=88=9B=E5=
=BB=BA=E4=B8=80=E4=B8=AAgoroutine=E6=B1=A0
=E5=AF=B9=E8=B1=A1=
=EF=BC=8C=E5=8F=82=E6=95=B0limit
=E4=B8=BA=E9=9D=9E=E5=BF=85=E9=
=9C=80=E5=8F=82=E6=95=B0=EF=BC=8C=E7=94=A8=E4=BA=8E=E9=99=90=E5=AE=9A=E6=B1=
=A0=E4=B8=AD=E7=9A=84=E5=B7=A5=E4=BD=9Cgoroutine
=E6=95=B0=E9=
=87=8F=EF=BC=8C=E9=BB=98=E8=AE=A4=E4=B8=BA=E4=B8=8D=E9=99=90=E5=88=B6=E3=80=
=82=E9=9C=80=E8=A6=81=E6=B3=A8=E6=84=8F=E7=9A=84=E6=98=AF=EF=BC=8C=E4=BB=BB=
=E5=8A=A1=E5=8F=AF=E4=BB=A5=E4=B8=8D=E5=81=9C=E5=9C=B0=E5=BE=80=E6=B1=A0=E4=
=B8=AD=E6=B7=BB=E5=8A=A0=EF=BC=8C=E6=B2=A1=E6=9C=89=E9=99=90=E5=88=B6=EF=BC=
=8C=E4=BD=86=E6=98=AF=E5=B7=A5=E4=BD=9C=E7=9A=84goroutine
=E6=
=98=AF=E5=8F=AF=E4=BB=A5=E5=81=9A=E9=99=90=E5=88=B6=E7=9A=84=E3=80=82=E6=88=
=91=E4=BB=AC=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87Size()
=E6=96=
=B9=E6=B3=95=E6=9F=A5=E8=AF=A2=E5=BD=93=E5=89=8D=E7=9A=84=E5=B7=A5=E4=BD=9C=
goroutine
=E6=95=B0=E9=87=8F=EF=BC=8C=E4=BD=BF=E7=94=A8Jo=
bs()
=E6=96=B9=E6=B3=95=E6=9F=A5=E8=AF=A2=E5=BD=93=E5=89=8D=E6=B1=A0=
=E4=B8=AD=E5=BE=85=E5=A4=84=E7=90=86=E7=9A=84=E4=BB=BB=E5=8A=A1=E6=95=B0=E9=
=87=8F=E3=80=82
=E5=90=8C=E6=97=B6=EF=BC=8C=E4=B8=BA=E4=BE=BF=E4=BA=8E=E4=BD=BF=E7=94=A8=
=EF=BC=8Cgrpool
=E5=8C=85=E6=8F=90=E4=BE=9B=E4=BA=86=E9=BB=98=
=E8=AE=A4=E7=9A=84goroutine
=E6=B1=A0=EF=BC=8C=E9=BB=98=E8=AE=
=A4=E7=9A=84=E6=B1=A0=E5=AF=B9=E8=B1=A1=E4=B8=8D=E9=99=90=E5=88=B6gor=
outine
=E6=95=B0=E9=87=8F=EF=BC=8C=E7=9B=B4=E6=8E=A5=E9=80=9A=E8=BF=
=87grpool.Add
=E5=8D=B3=E5=8F=AF=E5=BE=80=E9=BB=98=E8=AE=A4=E7=
=9A=84=E6=B1=A0=E4=B8=AD=E6=B7=BB=E5=8A=A0=E4=BB=BB=E5=8A=A1=EF=BC=8C=E4=BB=
=BB=E5=8A=A1=E5=8F=82=E6=95=B0=E5=BF=85=E9=A1=BB=E6=98=AF=E4=B8=80=E4=B8=AA=
func()
=E7=B1=BB=E5=9E=8B=E7=9A=84=E5=87=BD=E6=95=B0/=E6=96=B9=
=E6=B3=95=E3=80=82
=E8=BF=99=E4=B8=AA=E6=A8=A1=E5=9D=97=E5=A4=A7=E5=AE=B6=E9=97=AE=E5=BE=97=
=E6=9C=80=E5=A4=9A=E7=9A=84=E6=98=AF=E5=A4=96=E9=83=A8=E5=A6=82=E4=BD=95=E7=
=BB=99grpool
=E9=87=8C=E9=9D=A2=E7=9A=84=E4=BB=BB=E5=8A=A1=E4=
=BC=A0=E9=80=92=E5=8F=82=E6=95=B0=EF=BC=8C=E5=85=B7=E4=BD=93=E8=AF=B7=E7=9C=
=8B=E7=A4=BA=E4=BE=8B2=E3=80=82
goroutine
=E6=B1=A0=EF=
=BC=8C=E9=99=90=E5=88=B6100
=E4=B8=AAgoroutine
=E6=
=89=A7=E8=A1=8C1000
=E4=B8=AA=E4=BB=BB=E5=8A=A1package main import ( =09"context" =09"fmt" =09"github.com/gogf/gf/v2/os/gctx" =09"github.com/gogf/gf/v2/os/grpool" =09"github.com/gogf/gf/v2/os/gtimer" =09"time" ) var ( ctx =3D gctx.New() ) func job(ctx context.Context) { =09time.Sleep(1*time.Second) } func main() { =09pool :=3D grpool.New(100) =09for i :=3D 0; i < 1000; i++ { =09pool.Add(ctx,job) =09} =09fmt.Println("worker:", pool.Size()) =09fmt.Println(" jobs:", pool.Jobs()) =09gtimer.SetInterval(ctx,time.Second, func(ctx context.Context) { =09fmt.Println("worker:", pool.Size()) =09fmt.Println(" jobs:", pool.Jobs()) =09fmt.Println() =09}) =09select {} }
=E8=BF=99=E6=AE=B5=E7=A8=8B=E5=BA=8F=E4=B8=AD=E7=9A=84=E4=BB=BB=E5=8A=A1=
=E5=87=BD=E6=95=B0=E7=9A=84=E5=8A=9F=E8=83=BD=E6=98=AFsleep 1=E7=A7=
=92=E9=92=9F
=EF=BC=8C=E8=BF=99=E6=A0=B7=E4=BE=BF=E8=83=BD=E5=85=85=
=E5=88=86=E5=B1=95=E7=A4=BA=E5=87=BAgoroutine=E6=95=B0=E9=87=8F=E9=99=90=E5=
=88=B6=E5=8A=9F=E8=83=BD=E3=80=82=E5=85=B6=E4=B8=AD=EF=BC=8C=E6=88=91=E4=BB=
=AC=E4=BD=BF=E7=94=A8=E4=BA=86gtime.SetInterval
=E5=AE=9A=E6=97=
=B6=E5=99=A8=E6=AF=8F=E9=9A=941=E7=A7=92=E9=92=9F=E6=89=93=E5=8D=B0=E5=87=
=BA=E5=BD=93=E5=89=8D=E9=BB=98=E8=AE=A4=E6=B1=A0=E4=B8=AD=E7=9A=84=E5=B7=A5=
=E4=BD=9Cgoroutine
=E6=95=B0=E9=87=8F=E4=BB=A5=E5=8F=8A=E5=BE=
=85=E5=A4=84=E7=90=86=E7=9A=84=E4=BB=BB=E5=8A=A1=E6=95=B0=E9=87=8F=E3=80=82=
package main import ( =09"context" =09"fmt" =09"github.com/gogf/gf/v2/os/gctx" =09"github.com/gogf/gf/v2/os/grpool" =09"sync" ) var ( ctx =3D gctx.New() ) func main() { =09wg :=3D sync.WaitGroup{} =09for i :=3D 0; i < 10; i++ { =09wg.Add(1) =09grpool.Add(ctx,func(ctx context.Context) { =09=09fmt.Println(i) =09=09wg.Done() =09}) =09} =09wg.Wait() }
=E6=88=91=E4=BB=AC=E8=BF=99=E6=AE=B5=E4=BB=A3=E7=A0=81=E7=9A=84=E7=9B=AE= =E7=9A=84=E6=98=AF=E8=A6=81=E9=A1=BA=E5=BA=8F=E5=9C=B0=E6=89=93=E5=8D=B0=E5= =87=BA0-9=EF=BC=8C=E7=84=B6=E8=80=8C=E8=BF=90=E8=A1=8C=E5=90=8E=E5=8D=B4=E8= =BE=93=E5=87=BA=EF=BC=9A
10 10 10 10 10 10 10 10 10 10
=E4=B8=BA=E4=BB=80=E4=B9=88=E5=91=A2=EF=BC=9F=E8=BF=99=E9=87=8C=E7=9A=84=
=E6=89=A7=E8=A1=8C=E7=BB=93=E6=9E=9C=E6=97=A0=E8=AE=BA=E6=98=AF=E9=87=87=E7=
=94=A8go
=E5=85=B3=E9=94=AE=E5=AD=97=E6=9D=A5=E6=89=A7=E8=A1=8C=
=E8=BF=98=E6=98=AFgrpool
=E6=9D=A5=E6=89=A7=E8=A1=8C=E9=83=BD=
=E6=98=AF=E5=A6=82=E6=AD=A4=E3=80=82=E5=8E=9F=E5=9B=A0=E6=98=AF=EF=BC=8C=E5=
=AF=B9=E4=BA=8E=E5=BC=82=E6=AD=A5=E7=BA=BF=E7=A8=8B/=E5=8D=8F=E7=A8=8B=E6=
=9D=A5=E8=AE=B2=EF=BC=8C=E5=87=BD=E6=95=B0=E8=BF=9B=E8=A1=8C=E5=BC=82=E6=AD=
=A5=E6=89=A7=E8=A1=8C=E6=B3=A8=E5=86=8C=E6=97=B6=EF=BC=8C=E8=AF=A5=E5=87=BD=
=E6=95=B0=E5=B9=B6=E6=9C=AA=E7=9C=9F=E6=AD=A3=E5=BC=80=E5=A7=8B=E6=89=A7=E8=
=A1=8C(=E6=B3=A8=E5=86=8C=E6=97=B6=E5=8F=AA=E5=9C=A8goroutine
=
=E7=9A=84=E6=A0=88=E4=B8=AD=E4=BF=9D=E5=AD=98=E4=BA=86=E5=8F=98=E9=87=8F=
i
=E7=9A=84=E5=80=BC=EF=BC=8C=E8=80=8C=E8=BF=99=E4=B8=AA=E6=97=B6=E5=
=80=99=E5=8F=98=E9=87=8Fi
=E7=9A=84=E5=80=BC=E5=B7=B2=E7=BB=8F=
=E8=87=AA=E5=A2=9E=E5=88=B0=E4=BA=8610
=E3=80=82 =E6=B8=85=E6=
=A5=9A=E5=8E=9F=E5=9B=A0=E4=B9=8B=E5=90=8E=EF=BC=8C=E6=94=B9=E8=BF=9B=E6=96=
=B9=E6=A1=88=E4=B9=9F=E5=BE=88=E7=AE=80=E5=8D=95=E4=BA=86=EF=BC=8C=E5=B0=B1=
=E6=98=AF=E5=9C=A8=E6=B3=A8=E5=86=8C=E5=BC=82=E6=AD=A5=E6=89=A7=E8=A1=8C=E5=
=87=BD=E6=95=B0=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=E6=8A=8A=E5=BD=93=E6=97=
=B6=E5=8F=98=E9=87=8Fi
=E7=9A=84=E5=80=BC=E4=B9=9F=E4=B8=80=E5=
=B9=B6=E4=BC=A0=E9=80=92=E8=8E=B7=E5=8F=96=EF=BC=9B=E6=88=96=E8=80=85=E6=8A=
=8A=E5=BD=93=E5=89=8D=E5=8F=98=E9=87=8Fi=E7=9A=84=E5=80=BC=E8=B5=8B=E5=80=
=BC=E7=BB=99=E4=B8=80=E4=B8=AA=E4=B8=8D=E4=BC=9A=E6=94=B9=E5=8F=98=E7=9A=84=
=E4=B8=B4=E6=97=B6=E5=8F=98=E9=87=8F=EF=BC=8C=E5=9C=A8=E5=87=BD=E6=95=B0=E4=
=B8=AD=E4=BD=BF=E7=94=A8=E8=AF=A5=E4=B8=B4=E6=97=B6=E5=8F=98=E9=87=8F=E8=80=
=8C=E4=B8=8D=E6=98=AF=E7=9B=B4=E6=8E=A5=E4=BD=BF=E7=94=A8=E5=8F=98=E9=87=8F=
i
=E3=80=82
=E6=94=B9=E8=BF=9B=E5=90=8E=E7=9A=84=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81= =E5=A6=82=E4=B8=8B=EF=BC=9A
1)=E3=80=81=E4=BD=BF=E7=94=A8go=E5=85=B3=E9=94=AE=E5=AD=97
package main
import (
"fmt"
"sync"
)
func main() {
wg :=3D sync.WaitGroup{}
for i :=3D 0; i < 10; i++ {
wg.Add(1)
go func(v int){
fmt.Println(v)
wg.Done()
}(i)
}
wg.Wait()
}
=E6=89=A7=E8=A1=8C=E5=90=8E=EF=BC=8C=E8=BE=93=E5=87=BA=E7=BB=93=E6=9E=9C= =E4=B8=BA=EF=BC=9A
0 9 3 4 5 6 7 8 1 2
=E6=B3=A8=E6=84=8F=EF=BC=8C=E5=BC=82=E6=AD=A5=E6=89=A7=E8=A1=8C=E6=97=B6= =E5=B9=B6=E4=B8=8D=E4=BC=9A=E4=BF=9D=E8=AF=81=E6=8C=89=E7=85=A7=E5=87=BD=E6= =95=B0=E6=B3=A8=E5=86=8C=E6=97=B6=E7=9A=84=E9=A1=BA=E5=BA=8F=E6=89=A7=E8=A1= =8C=EF=BC=8C=E4=BB=A5=E4=B8=8B=E5=90=8C=E7=90=86=E3=80=82
2)=E3=80=81=E4=BD=BF=E7=94=A8=E4=B8=B4=E6=97=B6=E5=8F=98=E9=87= =8F
package main import ( =09"context" =09"fmt" =09"github.com/gogf/gf/v2/os/gctx" =09"github.com/gogf/gf/v2/os/grpool" =09"sync" ) var ( ctx =3D gctx.New() ) func main() { =09wg :=3D sync.WaitGroup{} =09for i :=3D 0; i < 10; i++ { =09wg.Add(1) =09v :=3D i =09grpool.Add(ctx, func(ctx context.Context) { =09=09fmt.Println(v) =09=09wg.Done() =09}) =09} =09wg.Wait() }
=E6=89=A7=E8=A1=8C=E5=90=8E=EF=BC=8C=E8=BE=93=E5=87=BA=E7=BB=93=E6=9E=9C= =E4=B8=BA=EF=BC=9A
9 0 1 2 3 4 5 6 7 8
=E8=BF=99=E9=87=8C=E5=8F=AF=E4=BB=A5=E7=9C=8B=E5=88=B0=EF=BC=8C=E4=BD=BF=
=E7=94=A8grpool
=E8=BF=9B=E8=A1=8C=E4=BB=BB=E5=8A=A1=E6=B3=A8=
=E5=86=8C=E6=97=B6=EF=BC=8C=E6=B3=A8=E5=86=8C=E6=96=B9=E6=B3=95=E4=B8=BAi
=E7=9A=84=E5=80=BC=E6=B3=A8=E5=86=8C=E8=BF=9B=E5=
=8E=BB=EF=BC=88=E8=AF=B7=E5=B0=BD=E9=87=8F=E4=B8=8D=E8=A6=81=E9=80=9A=E8=BF=
=87ctx
=E4=BC=A0=E9=80=92=E4=B8=9A=E5=8A=A1=E5=8F=82=E6=95=B0=
=EF=BC=89=EF=BC=8C=E5=9B=A0=E6=AD=A4=E5=8F=AA=E8=83=BD=E9=87=87=E7=94=A8=E4=
=B8=B4=E6=97=B6=E5=8F=98=E9=87=8F=E7=9A=84=E5=BD=A2=E5=BC=8F=E6=9D=A5=E4=BC=
=A0=E9=80=92=E5=BD=93=E5=89=8D=E5=8F=98=E9=87=8Fi
=E7=9A=84=E5=
=80=BC=E3=80=82
goroutine
=E9=94=99=E8=AF=AF=
=EF=BC=9AAddWithRecover
AddWithRecover
=E5=B0=86=E6=96=B0=E4=BD=9C=E4=B8=9A=E6=8E=A8=
=E9=80=81=E5=88=B0=E5=85=B7=E6=9C=89=E6=8C=87=E5=AE=9A=E6=81=A2=E5=A4=8D=E5=
=8A=9F=E8=83=BD=E7=9A=84=E6=B1=A0=E4=B8=AD=E3=80=82=E5=BD=93userFunc<=
/code>=E6=89=A7=E8=A1=8C=E8=BF=87=E7=A8=8B=E4=B8=AD=E5=87=BA=E7=8E=B0
=
panic
=E6=97=B6=EF=BC=8C=E4=BC=9A=E8=B0=83=E7=94=A8=E5=8F=AF=E9=80=89=
=E7=9A=84Recovery Func
=E3=80=82=E5=A6=82=E6=9E=9C=E6=B2=A1=E6=
=9C=89=E4=BC=A0=E5=85=A5Recovery Func
=E6=88=96=E8=B5=8B=E7=A9=
=BA=EF=BC=8C=E5=88=99=E5=BF=BD=E7=95=A5userFunc
=E5=BC=95=E5=8F=
=91=E7=9A=84panic
=E3=80=82=E8=AF=A5=E4=BD=9C=E4=B8=9A=E5=B0=86=
=E5=BC=82=E6=AD=A5=E6=89=A7=E8=A1=8C=E3=80=82
package main import ( =09"context" =09"fmt" =09"github.com/gogf/gf/v2/container/garray" =09"github.com/gogf/gf/v2/os/gctx" =09"github.com/gogf/gf/v2/os/grpool" =09"time" ) var ( =09ctx =3D gctx.New() ) func main() { =09array :=3D garray.NewArray(true) =09grpool.AddWithRecover(ctx, func(ctx context.Context) { =09=09array.Append(1) =09=09array.Append(2) =09=09panic(1) =09}, func(err error) { =09=09array.Append(1) =09}) =09grpool.AddWithRecover(ctx, func(ctx context.Context) { =09=09panic(1) =09=09array.Append(1) =09}) =09time.Sleep(500 * time.Millisecond) =09fmt.Print(array.Len()) }
grpool
=E5=92=8C=E5=8E=9F=E7=94=9F=E7=9A=84goroutine=
code>=E4=B9=8B=E9=97=B4=E7=9A=84=E6=80=A7=E8=83=BD
1)=E3=80=81grpool
package main import ( =09"context" =09"fmt" =09"github.com/gogf/gf/v2/os/gctx" =09"github.com/gogf/gf/v2/os/grpool" =09"github.com/gogf/gf/v2/os/gtime" =09"sync" =09"time" ) var ( ctx =3D gctx.New() ) func main() { =09start :=3D gtime.TimestampMilli() =09wg :=3D sync.WaitGroup{} =09for i :=3D 0; i < 10000000; i++ { =09wg.Add(1) =09grpool.Add(ctx,func(ctx context.Context) { =09=09time.Sleep(time.Millisecond) =09=09wg.Done() =09}) =09} =09wg.Wait() =09fmt.Println(grpool.Size()) =09fmt.Println("time spent:", gtime.TimestampMilli() - start) }
2)=E3=80=81goroutine
package main import ( =09"fmt" =09"github.com/gogf/gf/v2/os/gtime" =09"sync" =09"time" ) func main() { =09start :=3D gtime.TimestampMilli() =09wg :=3D sync.WaitGroup{} =09for i :=3D 0; i < 10000000; i++ { =09wg.Add(1) =09go func() { =09=09time.Sleep(time.Millisecond) =09=09wg.Done() =09}() =09} =09wg.Wait() =09fmt.Println("time spent:", gtime.TimestampMilli() - start) }
3)=E3=80=81=E8=BF=90=E8=A1=8C=E7=BB=93=E6=9E=9C=E6=AF=94=E8=BE= =83
=E6=B5=8B=E8=AF=95=E7=BB=93=E6=9E=9C=E4=B8=BA=E4=B8=A4=E4=B8=AA=E7=A8=8B=
=E5=BA=8F=E5=90=84=E8=BF=90=E8=A1=8C3
=E6=AC=A1=E5=8F=96=E5=B9=
=B3=E5=9D=87=E5=80=BC=E3=80=82
grpool:
goroutine count: 847313
memory spent: ~2.1 G
time spent: 37792 ms
goroutine:
goroutine count: 1000W
memory spent: ~4.8 GB
time spent: 27085 ms
=E5=8F=AF=E4=BB=A5=E7=9C=8B=E5=88=B0=E6=B1=A0=E5=8C=96=E8=BF=87=E5=90=8E=
=EF=BC=8C=E6=89=A7=E8=A1=8C=E7=9B=B8=E5=90=8C=E6=95=B0=E9=87=8F=E7=9A=84=E4=
=BB=BB=E5=8A=A1=EF=BC=8Cgoroutine
=E6=95=B0=E9=87=8F=E5=87=8F=
=E5=B0=91=E5=BE=88=E5=A4=9A=EF=BC=8C=E7=9B=B8=E5=AF=B9=E7=9A=84=E5=86=85=E5=
=AD=98=E4=B9=9F=E9=99=8D=E4=BD=8E=E4=BA=86=E4=B8=80=E5=80=8D=E4=BB=A5=E4=B8=
=8A=EF=BC=8CCPU=E6=97=B6=E9=97=B4=E8=80=97=E6=97=B6=E4=B9=9F=E5=8B=89=E5=BC=
=BA=E5=8F=AF=E4=BB=A5=E6=8E=A5=E5=8F=97=E3=80=82