Size: a a a

2020 July 25

DM

Dmitry M in Go-go!
Dmitry Soloma
Вы знания лучше проверяйте у своих подчиненных. А если в чате кто-то ошибается его нужно поправить а не херней страдать
Я и задал наводящий вопрос
источник

DS

Dmitry Soloma in Go-go!
Dmitry M
Я и задал наводящий вопрос
дак какой у нас планировщик в 1.14 кооперативный или не кооперативный?


https://m.habr.com/ru/post/502506
источник

DM

Dmitry M in Go-go!
Dmitry Soloma
дак какой у нас планировщик в 1.14 кооперативный или не кооперативный?


https://m.habr.com/ru/post/502506
Официально asynchronously preemptible https://golang.org/doc/go1.14#runtime
источник

DS

Dmitry Soloma in Go-go!
Dmitry M
Официально asynchronously preemptible https://golang.org/doc/go1.14#runtime
Или как написано в драфте non cooperative, о чем я и написал
источник

DM

Dmitry M in Go-go!
Dmitry Soloma
Или как написано в драфте non cooperative, о чем я и написал
Вы не внимательны, я просил на что-то официальное, а вы непонятно на что ссылаетесь
источник

DM

Dmitry M in Go-go!
Dmitry Soloma
Или как написано в драфте non cooperative, о чем я и написал
Когда он был кооперативный?
источник

DM

Dmitry M in Go-go!
отличительная особенность кооперативной многозадачности, это получение неограниченного  процессорного времени. А разбрасывание safe points, это не давало
источник

ЛА

Локоть Анатолий... in Go-go!
Dmitry Soloma
дак какой у нас планировщик в 1.14 кооперативный или не кооперативный?


https://m.habr.com/ru/post/502506
Runtime.gosched было единственным признаком кооперативности
источник

D

Denis in Go-go!
ymdev
Привет.

Есть nodejs. У него внутри все основано на event loop. В частности при parse или stringify JSON нода это делает синхронно и забивает event loop пока не доделает его. Даже если вынести в другой поток работу с json, event loop все равно будет забит, когда в основной поток будет отдаваться результат и конструироваться объект.

Теперь касательно go. Имеет ли он такую же проблему при парсинге json ?
Или он не построен на event loop (libuv или что-то еще) ?

Java (и другие языки, где нет в ядре eventloop, типа C++, C#) могут парсить в отдельном потоке и просто передать в основной поток легковесную ссылку на готовый объект, что сокращает все расходы взаимодействия почти до нуля.
Максимально тупой пример:

Если в жс ты в разных промисах будешь жсон парсить, луп заблочится, то есть промисы асинхронны но однопоточность никуда не делась
2 жсон на каждый по 1 сек. Как ни крути результат будет за 2 сек (если всякие node-cluster не юзать)

В Го горутины считай как промисы в жс, только горутины помимо асинхронности еще и у каждой свой «поток», то есть можешь парсить конкурентно хоть 100 жсон, они будут парситься одновременно
100 жсон на каждый по 1 сек. Результат будет ~1 сек
источник

y

ymdev in Go-go!
Denis
Максимально тупой пример:

Если в жс ты в разных промисах будешь жсон парсить, луп заблочится, то есть промисы асинхронны но однопоточность никуда не делась
2 жсон на каждый по 1 сек. Как ни крути результат будет за 2 сек (если всякие node-cluster не юзать)

В Го горутины считай как промисы в жс, только горутины помимо асинхронности еще и у каждой свой «поток», то есть можешь парсить конкурентно хоть 100 жсон, они будут парситься одновременно
100 жсон на каждый по 1 сек. Результат будет ~1 сек
не знаю, почему ты посчитал это тупой параллелью. Я довольно подробно написал, почему в js даже выделение в отдельный поток не принесет плодов. IO один на всю ОС
источник

D

Denis in Go-go!
ymdev
не знаю, почему ты посчитал это тупой параллелью. Я довольно подробно написал, почему в js даже выделение в отдельный поток не принесет плодов. IO один на всю ОС
Не, это я про свой текст
источник

y

ymdev in Go-go!
Denis
Не, это я про свой текст
ааа, понял
источник

🅚

🅚🅘🅝🅓🅔🅡🅦🅞🅝🅓... in Go-go!
Подскажите, как решить одну диллему
Го же мультитредовый? И http запросы выполняются асинхронно?
У меня есть файл в который нужно писать инфу для юзеров (кастомные логи скажем так)
Можно как-то синхронизировать запросы записи данных юзера в этот файл?
источник

DP

Daniel Podolsky in Go-go!
🅚🅘🅝🅓🅔🅡🅦🅞🅝🅓
Подскажите, как решить одну диллему
Го же мультитредовый? И http запросы выполняются асинхронно?
У меня есть файл в который нужно писать инфу для юзеров (кастомные логи скажем так)
Можно как-то синхронизировать запросы записи данных юзера в этот файл?
Вариантов больше одного
источник

AR

Aleksandr Razumov in Go-go!
Можно сериализировать доступ через канал, можно через мютекс
источник

DP

Daniel Podolsky in Go-go!
То ли вам канал нужен, то ли mutex, то ли вообще последовательное исполнение в одной горутине
источник

🅚

🅚🅘🅝🅓🅔🅡🅦🅞🅝🅓... in Go-go!
Последовательную запись в файл
Допустим Вова и Юра захотели записать в одно время данные
Но нужно же их построить в одну очередь как-то...
источник

🅚

🅚🅘🅝🅓🅔🅡🅦🅞🅝🅓... in Go-go!
Я новичок в го, поэтому посоветуйте оптимальный вариант😅
источник

DP

Daniel Podolsky in Go-go!
Мьютекс
источник

ЕО

Евгений Омельченко... in Go-go!
Только нужно помнить, что мьютекс залочит рутину на выполнение
источник