ICode9

精准搜索请尝试: 精确搜索
  • runtime标准库2022-09-15 18:04:38

    runtime标准库 runtime包提供和go运行时环境的互操作,如控制goroutine的函数。 它也包括用于reflect包的低层次类型信息。 1. 环境变量 环境变量GOGC设置最初的垃圾收集目标百分比。当新申请的数据和前次垃圾收集剩下的存活数据的比率达到该百分比时,就会触发垃圾收集。默认GOGC=1

  • go基础 - WaitGroup用法2022-08-16 00:32:52

    go基础 - WaitGroup用法 package main import ( "fmt" "sync" "time" ) /** * Created by Goland * User: wkk alisleepy@hotmail.com * Time: 2022/8/15 - 23:33 * Desc: <描述信息> */ func main() { fmt.Println("主线程 start。

  • golang执行shell命令2022-08-10 14:32:26

    golang调用shell命令(实时输出, 终止等) 背景 是这样的,最近在研究一个定时任务系统的改造,可能有点像jenkins做到的那种吧。​可以输入shell命令,也可以执行py脚本等等,相比之前来说,也要能够及时停止!​但是遇到了这么个问题,golang执行py脚本的时候获取不到脚本的输出。 1首先来看看go

  • 支持首次触发的 Go Ticker2022-07-04 01:01:42

    促使我写这篇文章主要是在写一个关于虚拟货币账户监控的项目时使用 Ticker 的问题。 Ticker 的问题 如果用过 Ticker 的朋友会知道,创建 Ticker 后并不会马上执行,而是会等待一个时间 d,这就是创建时的间隔时间。如果间隔时间很短这基本上不会有太大问题,但是如果对首次执行时间有要求

  • Golang多线程垂直输出字符串2022-06-30 12:32:23

    [本文出自天外归云的博客园] 三个字符串,abc,def,ghi,请用多线程顺序输出:adg,beh,cfi 抛砖引玉,我的代码如下: package main import "fmt" import "sync" func printStr(a, b, c string) { strLen := len(a) var wg sync.WaitGroup wg.Add(strLen) msg

  • 并发编程2022-06-20 13:03:57

    Go 并发原语 并发问题出现的原因---> 在Go开发中如何监测到这个问题---> Go 是如何解决的 互斥锁 https://songlh.github.io/paper/go-study.pdf 问题描述: package main import( "fmt" "sync" ) func main(){ var count = 0 // 使用 WaitGroup等待 10个goroutine 完成 va

  • go 自定义RWMutex2022-06-15 00:01:38

    package main import ( "fmt" "strconv" "sync" ) type RwMap struct{ mu sync.RWMutex data map[string]int } func New() *RwMap { return &RwMap{data: make(map[string]int)} } func (r *RwMap )Read(key string)int { r.mu.

  • Golang 的 goroutine 的 竞争解决方法 原子操作atomic(乐观锁)和互斥锁mutex(悲观锁)2022-05-31 00:03:27

    竞争状态 如果两个多以上的goroutine在没有互相同步的情况下,访问某个共享的资源,并试图同时读或者写,就处于相互竞争的状态。 解决这种问题的方法就是在同一时刻只有一个goroutine对此资源进行读写操作。 package main import ( "fmt" "runtime" "sync" ) var( counter in

  • GO-并发安全2022-05-04 18:00:57

    资源竞争 多协程并发修改同一块内存,产生资源竞争 go run或go build时添加-race参数检查资源竞争情况 n++不是原子操作,并发执行时会存在脏写。n++分为3步:取出n,加1,结果赋给n 脏写现象 package main import ( "fmt" "sync" "sync/atomic" ) var n int32 func inc() { n

  • [ Python ] PyQt5 PySide2 笔记2022-05-03 23:31:19

    https://www.cnblogs.com/yeungchie/ PyQt5 from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * PySide2 from PySide2.QtWidgets import * from PySide2.QtCore import * from PySide2.QtGui import * 顶部应用 QApplication app = QApplica

  • golang 并发处理2022-04-13 14:01:36

    背景 需要并发的处理的任务 查阅 使用 waitgroup chan 代码实现 package main import ( "fmt" "sync" ) func main() { var l []int receive := func(w chan int, wg *sync.WaitGroup) { for data := range w { l = append(l, data) w

  • golang 循环变量2022-04-09 12:00:28

    下面例子: package main import "fmt" func test1() { a1 := []int{1, 2, 3} a2 := make([]*int, len(a1)) for i, v := range a1 { a2[i] = &v } fmt.Println("值:", *a2[0], *a2[1], *a2[2]) fmt.Println("地

  • go切片支持并发吗?2022-04-06 09:04:51

    实践是检验真理的唯一标准,所以当我们遇到一个不确定的问题,直接写demo来验证,因为切片的特点,我们可以分多种情况来验证: 不指定索引,动态扩容并发向切片添加数据 func concurrentAppendSliceNotForceIndex() { sl := make([]int, 0) wg := sync.WaitGroup{} for index :

  • 一个简单demo展示应用接口使用goroutine优雅退出2022-03-08 16:03:55

    package main import ( "context" "errors" "log" "net/http" "sync" "time" ) type Tracker struct { wg sync.WaitGroup } type App struct { track Tracker } func (a *App) Handle(w http.Respo

  • Go sync.WaitGroup的用法2022-02-25 09:35:18

    介绍 经常会看到以下的代码: package main import ( "fmt" "time" ) func main(){ for i := 0; i < 100 ; i++{ go fmt.Println(i) } time.Sleep(time.Second) } 主线程为了等待goroutine都运行完毕,不得不在程序的末尾使用time.Sleep() 来睡眠

  • go 交替打印数字和字母(步长2字符)2022-02-24 19:00:32

    func main() { wg := sync.WaitGroup{} wg.Add(1) num := 28 a := make(chan int) b := make(chan int) go func() { defer wg.Done() for i := 1; i < num; { <-a fmt.Println(i) i++ fmt.Println(i) i++ b <- 1 } }() go func()

  • Golang:Concurrency, Goroutines and GOMAXPROC2022-02-18 13:34:48

      William Kennedy 2022 年 1 月 29 日   介绍   刚刚加入GO-Minami 组织的新人经常会说想学习更多有关 Go 并发的知识。并发好像在每个语言中都是热门话题,当然我第一次听说 Go 语言时也是因为这个点。而 Rob Pike 的一段 GO Concurrency Patterns 视频才让我真真意识到我需

  • 由一个问题引发的 goroutine 相关源码的探究2022-02-18 13:32:22

      本文基于 Go 语言 1.13.x 版本进行分析   在 Go 语言中文网微信群有人问了这么一个问题,如下代码:   const N = 26   func main() {   const GOMAXPROCS = 1   runtime.GOMAXPROCS(GOMAXPROCS)   var wg sync.WaitGroup   wg.Add(2 * N)   for i := 0; i < N; i

  • Go sync.Map2022-02-09 10:03:43

    需求 读写共享map   #1 常规map package main import ( "fmt" "strconv" "sync" ) func _110Test1() { wg := sync.WaitGroup{} mp := make(map[string]int) for i := 0; i < 20; i++ { wg.Add(1) go f

  • Go-waitGroup的那些事2022-02-08 14:58:18

    Add() 和 Wait() 最好不要放在不同的 goroutine, 避免并发执行.同一个 Once 实例调用多次 Do 方法, 只有一个函数会被调用, 但是其他的函数会阻塞, 等待 Unlock. 上代码, 自己品: package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup wg.Add(2)

  • YUM安装_1.MySQL2022-02-05 09:31:57

    [root@wg ~]# vi /etc/yum.repos.d/mysql-community.repo | [mysql57-community] | name=MySQL 5.7 Community Server | baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ | enabled=1 | gpgcheck=0 | gpgkey=file:////etc/pki/rpm-gpg/RPM-GPG-KEY-my

  • Goroutine之context上下文2022-02-04 11:01:41

    一、context上下文简介 context简单的理解就是上下文,它可以进行不同协程之间的通信,所以也就包含了上下文的环境等变量信息。有下面三种用法: WithCancel 通过该方法可以达到一个协程在某一时刻控制另一个协程的退出 WithDeadline 通过该方法可以在一个协程在指定时间点控制另一个

  • yum_1.Nginx2022-02-02 22:04:09

    yum源 [root@wg ~]# vi /etc/yum.repos.d/nginx.repo | [nginx-stable] | name=nginx stable repo | baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ | gpgcheck=1 | enabled=1 | gpgkey=https://nginx.org/keys/nginx_signing.key | module_hotfixes=true

  • Go语言之goroutine基础2022-01-31 14:02:35

    一、goroutine基础介绍 goroutine是Golang中的协程,它是一种微线程,比起线程它耗费更少的资源。线程的作用就是可以进行并发或者并行,完全利用电脑多核的资源。 并发 多个任务跑在一个cpu上,在某一时刻只处理一个任务,任务之间来回切换的时间极短 并行 多个任务跑在多个cpu上,在某一时

  • Linux装配—15.LAMP2022-01-29 07:31:19

    安装过程 - 安装依赖 - 安装mysql - 安装apache - 安装php   安装依赖 - 安装依赖就是安装包组以及特殊依赖包 | Development Tools | Desktop | Desktop Platform | Desktop Platform Development - 安装 | [root@wg ~]# yum -y groupinstall "Development Tools" | [root@

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有