Самый простой пример состояния гонки? - PullRequest
0 голосов
/ 16 ноября 2018

Мне нужен простой пример кода Go, который определенно запустит программу в состоянии гонки.

Есть идеи?

1 Ответ

0 голосов
/ 16 ноября 2018

Оригинальный вопрос:

Мне нужен простой пример кода Go, который обязательно запустит программу в состоянии гонки.


Например,

racer.go:

package main

import (
    "time"
)

var count int

func race() {
    count++
}

func main() {
    go race()
    go race()
    time.Sleep(1 * time.Second)
}

Выход:

$ go run -race racer.go
==================
WARNING: DATA RACE
Read at 0x00000052ccf8 by goroutine 6:
  main.race()
      /home/peter/gopath/src/racer.go:10 +0x3a

Previous write at 0x00000052ccf8 by goroutine 5:
  main.race()
      /home/peter/gopath/src/racer.go:10 +0x56

Goroutine 6 (running) created at:
  main.main()
      /home/peter/gopath/src/racer.go:15 +0x5a

Goroutine 5 (finished) created at:
  main.main()
      /home/peter/gopath/src/racer.go:14 +0x42
==================
Found 1 data race(s)
exit status 66
$ 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...