📝 Go教程

801篇技术文档
  Go并发

📅  最后修改于: 2021-01-02 08:37:30        🧑  作者: Mango

并发大型程序分为较小的子程序。同时运行其较小组件的程序称为并发。Goroutines同时运行的应用程序部分称为goroutines。 Goroutine和通道用于构造并发程序。进程是在计算机中运行的独立执行实体,该计算机在内存中自己的地址空间中运行。进程具有同时执行实体的线程。线程共享进程的相同地址空间。Goroutine很轻巧,比线程轻得多。 Goroutine在相同的地址空间中运行,因此必须同...

  GO语言 race

📅  最后修改于: 2021-01-02 08:38:24        🧑  作者: Mango

参加比赛当两个或更多goroutine尝试访问同一资源时,Go中就会出现竞争条件。当变量在不考虑其他例程的情况下尝试读取和写入资源时,可能会发生这种情况。参加比赛条件示例输出:如您在上面的示例中看到的,计数资源由2个go例程访问。每个例程迭代10次。在这种情况下,count变量最后应为20。并非如此,因为它是在模拟比赛条件。...

  Go Mutex

📅  最后修改于: 2021-01-02 08:39:17        🧑  作者: Mango

互斥量互斥锁或互斥锁可用于同步对状态的访问,并跨许多goroutine安全地访问数据。它充当代码关键部分入口的保护,因此一次只能有一个线程进入关键部分。我们用它在特定代码行周围设置了锁。当一个Goroutine持有锁时,所有其他Goroutine均被阻止执行受同一互斥锁保护的任何代码行,并被迫等待直到产生锁之后才能继续执行。Go Mutex示例输出:...

  GO语言原子变量

📅  最后修改于: 2021-01-02 08:40:10        🧑  作者: Mango

去原子变量通过同步/原子程序包,原子变量用于管理状态并避免争用条件。原子计数器可以通过多个go例程进行访问。转到原子变量示例输出:...

  GO语言channel

📅  最后修改于: 2021-01-02 08:41:03        🧑  作者: Mango

转到频道通道充当管道,我们通过管道将键入的值从一个Goroutine发送到另一个Goroutine。由于在任何给定时间只有一个Goroutine可以访问数据项,因此可以保证同步。数据的所有权在不同的Goroutine之间传递。因此,通过设计,它避免了共享内存的陷阱,并防止了竞争情况。转到频道示例输出:...

  GO语言 woker-pools

📅  最后修改于: 2021-01-02 08:41:55        🧑  作者: Mango

去工人池工作池是一种设计,其中固定数量的m个工作程序(Go goroutines)在工作队列(工作通道)中的n个任务上工作。工作一直排在队列中,直到工人完成其当前任务并提出新任务为止。让我们看一个例子输出:在此示例中,启动了2个工作人员,并将9个工作项放到了工作渠道中。工人们有一个带时间的工作循环,然后睡觉,每个人最终只能工作2个工作。在完成所有工作之后,在通道上使用close,这向所有2个工作人...

  GO语言 time

📅  最后修改于: 2021-01-02 08:42:49        🧑  作者: Mango

去时间Go对时间操作有很好的支持。 Unix纪元时间用作时间操纵的参考。我们可以使用时间包中提供的Date方法来构建时间对象。该软件包包含诸如year(),month(),day(),location()等方法。我们通过使用时间对象来调用这些方法。去时间示例输出:去时间示例2输出:...

  GO语言 epoch

📅  最后修改于: 2021-01-02 08:43:41        🧑  作者: Mango

去时代在Go中,我们可以以秒,毫秒,纳秒为单位生成时间。时间包具有所需的方法,例如secs,nanos等,它们可以为我们提供帮助。参考时间是Unix纪元。我们还可以将纳秒或毫秒转换为时间格式。输出:...

  Go Tickers

📅  最后修改于: 2021-01-02 08:44:34        🧑  作者: Mango

去股票行情当我们想按固定的时间间隔进行一些工作时,会使用“ Go Tickers”。可以使用Stop()方法像停止计时器一样停止股票行情。NewTicker()方法返回一个新的Ticker,该Ticker具有一个根据duration参数发送时间的通道。持续时间必须大于零,否则,置顶器将出现恐慌。Tick()是NewTicker的包装,它提供对滴答通道的访问。 Tick()方法对于不想关闭股票行情指...

  Go语言 文件I / O

📅  最后修改于: 2021-01-02 09:11:32        🧑  作者: Mango

转到文件I / O在运行中,os.file对象用于文件操作。 os.File对象也称为文件句柄。os包中的open函数用于在Go中打开文件。 io / ioutil包中的ReadFile()用于读取文件。此方法返回[] byte个读取字节的数组。 file.WriteString方法可用于写入文件。我们在打开文件后立即使用defer file.close()来确保函数完成后立即关闭文件。如果文件不...

  Go语言 HTTP服务器

📅  最后修改于: 2021-01-02 09:12:24        🧑  作者: Mango

转到HTTP服务器Go也可以用于创建Web应用程序。 Net / http是用于构建Web应用程序的库软件包。它具有HandelFunc()函数,该函数将传入的请求路由到其相应的函数。 ListenAndServe函数用于创建监听提供的端口的资源服务器。函数someFunc具有http.ResponceWriter和http.Request类型参数。它负责处理传入的请求并处理返回响应。转到http...

  Go语言 URL解析

📅  最后修改于: 2021-01-02 09:13:17        🧑  作者: Mango

转到URL解析Go对URL解析具有良好的支持。 URL包含方案,身份验证信息,主机,端口,路径,查询参数和查询片段。我们可以解析URL并推断出要传入服务器的参数是什么,然后相应地处理请求。net / url软件包具有必需的功能,例如Scheme,User,Host,Path,RawQuery等。Go URL解析示例1输出:Go URL解析示例2输出:在浏览器中输入网址:http:// localh...

  Go Rest API

📅  最后修改于: 2021-01-02 09:14:12        🧑  作者: Mango

转到REST API示例输出:方法->获取方法-> GET,方法-> POST,方法->删除...

  Go Base64编码

📅  最后修改于: 2021-01-02 09:15:06        🧑  作者: Mango

Go Base64编码我们可以在Go中编码String和url。 Go有带字节数组并转换为字符串编码的Encoder。解码器获取编码后的值并将其转换为原始字符串。Go Base64示例输出:...

  GO 语言随机数

📅  最后修改于: 2021-01-02 09:15:59        🧑  作者: Mango

去随机数生成我们可以使用rand对象生成随机数。我们应该为rand对象提供一些种子,以使生成的数量不同。如果我们不提供种子,那么编译器将始终产生相同的结果。去随机数生成输出:...