Публикации по теме 'concurrency'


Мьютексы в Go.
Одной из самых крутых особенностей Go являются горутины, которые позволяют вам очень легко делать что-то одновременно. Однако одна вещь, которая чрезвычайно важна для горутин, которую можно упустить из виду, - это мьютексы. Например, когда более одной горутины пытаются увеличить глобальную переменную, мы можем столкнуться со сценарием, в котором счетчик не точен. Давайте посмотрим на пример: var count int func updateCount(done chan<- bool) { count++ done <- true } func main()..

Написать простой замок
На прошлой неделе я был в своем офисе, пытаясь написать простую блокировку в Angular 1. Почему вы используете Angular 1? Как всем известно, Angular 1, вероятно, печально известен своей ужасной производительностью при обработке привязки данных и отладке . Должны ли мы переходить на Angular 5 — это отдельная история. Зачем JS нужны блокировки? Разве JS не однопоточный? Итак, на прошлой неделе я имел дело с очередью сообщений и хотел убедиться, что очередь может быть скопирована и..

OTP в Elixir: изучите GenServer, создав собственный сокращатель URL-адресов
Эта статья изначально была опубликована в моем личном блоге на сайте ieftimov.com . Глядя на любой язык программирования, вы (надеюсь!) найдете богатую и полезную стандартную библиотеку. Я начал свою профессиональную карьеру в качестве разработчика программного обеспечения с Ruby, который имеет довольно простую в использовании и хорошо документированную стандартную библиотеку с множеством модулей и классов для использования. Лично я нахожу модуль Enumerable в Ruby со всеми его..

Vert.x и SQL
Основываясь на вопросах, на которые я регулярно отвечаю в StackOverflow , я чувствую, что разработчики часто неправильно понимают, как Vert.x работает с базами данных SQL. Основная концепция, которую вам нужно понять, заключается в том, что почти все драйверы СУБД работают синхронно. Единственным исключением, о котором я знаю в настоящее время, является PostreSQL, что также объясняет, почему PostreSQL имеет огромное преимущество в последних тестах TechEmpowered . Но Vert.x..

Как написать параллельный FTP-сервер в Go (часть 2)
Меняйте каталоги, перечисляйте их содержимое и скачивайте файлы В части 1 мы узнали, как обслуживать несколько клиентов одновременно, разработали структуру для представления FTP-соединения, перенаправили клиентские команды их обработчикам на стороне сервера и рассмотрели основы отправки ответов. Теперь мы готовы к основам FTP: манипулированию каталогами и загрузкой файлов. Напоминаем, что это ftp.Serve , маршрутизатор, который отправляет команды от клиента их..

Хеш-таблица против параллельной HashMap и ее внутренняя работа
1. Диаграммы иерархии хеш-таблицы и параллельной HashMap 2. свойства HashTable и параллельного HashMap Несмотря на то, что все свойства HashTable и Concurrent HashMap схожи, но « Если это потокобезопасная высокопараллельная реализация, то рекомендуется использовать Concurrent HashMap вместо Hashtable». почему .. ??? Хотя и Concurrent HashMap, и Hashtable являются потокобезопасными. Но хеш-таблица имеет низкую производительность при использовании многопоточности...

Параллельное программирование на Go
Возможность одновременного выполнения множества задач на компьютере называется параллелизмом. Любой код Go можно запустить одновременно, запустив его в горутине. В статье будут представлены некоторые распространенные способы использования, такие как Goroutine, WaitGroup, Channel и Mutex, с примерами. В Go есть более продвинутые методы параллелизма, которые мы можем изучить дальше и за пределами этой статьи. Горутины Когда мы запускаем нашу программу и создаем новую горутину, мы..