Size: a a a

2020 May 23

C

Calculon in Go-go!
Roman Sharkov
тем не менее
Окей ты прав🙄
источник

а

а кто это in Go-go!
Roman Sharkov
тем не менее
но вряд ли x просто так инкрементится
источник

r

rad1k4l in Go-go!
Привет коллеги. может кто то имплементировал или у кого то есть информация о таких протоколах как Pythia PRF , Simple Password Hardened Encryption. хочу использовать в проекте нужен помощь
источник

C

Calculon in Go-go!
а кто это
инкремент выполняется за одну инструкцию
у нас походу не за одну
источник

ВЩ

Владимир Щёголев... in Go-go!
Уж не закидывайте совсем камнями. Переделал нормально под каналы. Важно было, чтобы ответ записывался в out от горутин в порядке FIFO. При этом они могут ожидать ответа от другого сервиса внутри себя
источник

C

Calculon in Go-go!
Calculon
у нас походу не за одну
package main

import "testing"

func TestKek(t *testing.T) {
 var foo int
 for i := 0; i < 10; i++ {
   go func() {
     foo++
   }()
 }
}

--- FAIL: TestKek (0.00s)
   testing.go:906: race detected during execution of test
источник

AK

Anton Kucherov in Go-go!
Евгений Омельченко
Если три модели трединга -- треды ОС (1:1 threads), зелёные треды (1:N) и гибридные (M:N threads), вот в го, как и в эрланге, типичный гибридный трединг.
Т.е. го-рутина это просто user thread ? Потому что в M:N threads модели (да и во всех остальных) речь идет о 2-ух разных видах тредов user threads и kernel threads.
источник

M

Mikhail in Go-go!
Calculon
package main

import "testing"

func TestKek(t *testing.T) {
 var foo int
 for i := 0; i < 10; i++ {
   go func() {
     foo++
   }()
 }
}

--- FAIL: TestKek (0.00s)
   testing.go:906: race detected during execution of test
Надо atomic юзать, инкремент в го это 3 операции вроде
источник

а

а кто это in Go-go!
Mikhail
Надо atomic юзать, инкремент в го это 3 операции вроде
какой код сгенерит
источник

а

а кто это in Go-go!
но atomic все равно надо использовать
источник

M

Mikhail in Go-go!
а кто это
какой код сгенерит
Не понял
источник

а

а кто это in Go-go!
Mikhail
Не понял
func main() {
 var foo int // movq    $0,BX
 foo++   // incq    ,BX    
}
https://go.godbolt.org/z/peLh7b
источник

M

Mikhail in Go-go!
Типа код в объёме вырастет?
источник

ЕО

Евгений Омельченко... in Go-go!
Anton Kucherov
Т.е. го-рутина это просто user thread ? Потому что в M:N threads модели (да и во всех остальных) речь идет о 2-ух разных видах тредов user threads и kernel threads.
В любой модели многопоточности можно говорить о юзер тредс (т.е. сущностях многопоточности, с которыми работает программист) и кернел тредс (т.е. с сущностями многоточности, с которыми работает ядро), просто в M:N тредах существует пул потоков ядра на которых уже выполняются пользовательские вычисления
источник

C

Calculon in Go-go!
Mikhail
Типа код в объёме вырастет?
кек, нет
источник

C

Calculon in Go-go!
а кто это
func main() {
 var foo int // movq    $0,BX
 foo++   // incq    ,BX    
}
https://go.godbolt.org/z/peLh7b
не шарю за асм, но atomic.AddUint64 там вот это:
call    ,sync/atomic.AddUint64(SB)
источник

C

Calculon in Go-go!
походу зависит от архитектуры
источник

AK

Anton Kucherov in Go-go!
Евгений Омельченко
В любой модели многопоточности можно говорить о юзер тредс (т.е. сущностях многопоточности, с которыми работает программист) и кернел тредс (т.е. с сущностями многоточности, с которыми работает ядро), просто в M:N тредах существует пул потоков ядра на которых уже выполняются пользовательские вычисления
Так го-рутина это user-thread или нет?
источник

а

а кто это in Go-go!
Calculon
походу зависит от архитектуры
есстесно
источник

ЕО

Евгений Омельченко... in Go-go!
Anton Kucherov
Так го-рутина это user-thread или нет?
Я не понимаю в каком смысле вы используете это понятие. Если в смысле зеленого треда, то нет, конечно. Если в смысле программного интерфейса многопоточности, то естественно да
источник