#многопоточность — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #многопоточность, aggregated by home.social.
-
Что сейчас с Project Loom? Примеры и код
Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?
https://habr.com/ru/articles/1038528/
#Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle
-
Что сейчас с Project Loom? Примеры и код
Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?
https://habr.com/ru/articles/1038528/
#Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle
-
Что сейчас с Project Loom? Примеры и код
Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?
https://habr.com/ru/articles/1038528/
#Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle
-
Что сейчас с Project Loom? Примеры и код
Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?
https://habr.com/ru/articles/1038528/
#Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle
-
Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency
Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.
https://habr.com/ru/articles/1037932/
#Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK
-
Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency
Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.
https://habr.com/ru/articles/1037932/
#Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK
-
Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency
Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.
https://habr.com/ru/articles/1037932/
#Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK
-
Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency
Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.
https://habr.com/ru/articles/1037932/
#Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK
-
Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency
Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure. Узнать что есть кроме Java Threads
https://habr.com/ru/articles/1033894/
#Java #JVM #многопоточность #Thread #Thread_Pool #ExecutorService #Virtual_Threads #Project_Loom #Structured_Concurrency #Blocking_IO
-
Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency
Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure. Узнать что есть кроме Java Threads
https://habr.com/ru/articles/1033894/
#Java #JVM #многопоточность #Thread #Thread_Pool #ExecutorService #Virtual_Threads #Project_Loom #Structured_Concurrency #Blocking_IO
-
Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency
Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure. Узнать что есть кроме Java Threads
https://habr.com/ru/articles/1033894/
#Java #JVM #многопоточность #Thread #Thread_Pool #ExecutorService #Virtual_Threads #Project_Loom #Structured_Concurrency #Blocking_IO
-
Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency
Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure. Узнать что есть кроме Java Threads
https://habr.com/ru/articles/1033894/
#Java #JVM #многопоточность #Thread #Thread_Pool #ExecutorService #Virtual_Threads #Project_Loom #Structured_Concurrency #Blocking_IO
-
Невидимый враг многопоточности: False Sharing и кэш-линии процессора
Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем дать каждому потоку свой собственный счетчик. Нет общих данных — нет блокировок, верно?
https://habr.com/ru/articles/1032804/
#false_sharing #многопоточность #оптимизация #кэш_процессора #lockfree #кэшлиния #производительность
-
Невидимый враг многопоточности: False Sharing и кэш-линии процессора
Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем дать каждому потоку свой собственный счетчик. Нет общих данных — нет блокировок, верно?
https://habr.com/ru/articles/1032804/
#false_sharing #многопоточность #оптимизация #кэш_процессора #lockfree #кэшлиния #производительность
-
Невидимый враг многопоточности: False Sharing и кэш-линии процессора
Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем дать каждому потоку свой собственный счетчик. Нет общих данных — нет блокировок, верно?
https://habr.com/ru/articles/1032804/
#false_sharing #многопоточность #оптимизация #кэш_процессора #lockfree #кэшлиния #производительность
-
Невидимый враг многопоточности: False Sharing и кэш-линии процессора
Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем дать каждому потоку свой собственный счетчик. Нет общих данных — нет блокировок, верно?
https://habr.com/ru/articles/1032804/
#false_sharing #многопоточность #оптимизация #кэш_процессора #lockfree #кэшлиния #производительность
-
Многопоточность в SCADA системах
Пишу SCADA-ядро на C++ для инженерных систем: опрос ПЛК, кэширование значений, правила автоматики и управление исполнительными механизмами. На текущем этапе упёрся в практический вопрос многопоточности: как правильно разделять потоки чтения и записи, как сериализовать доступ к одному каналу связи, и насколько оправдано использование std::condition_variable. В статье показываю текущую реализацию потока опроса ПЛК и хочу услышать мнение коллег, которые разрабатывали промышленные SCADA-системы.
https://habr.com/ru/articles/1029582/
#scada #c++ #modbus #thread #mutex #многопоточность #плк #диспетчеризация #автоматизация #асутп
-
Многопоточность в SCADA системах
Пишу SCADA-ядро на C++ для инженерных систем: опрос ПЛК, кэширование значений, правила автоматики и управление исполнительными механизмами. На текущем этапе упёрся в практический вопрос многопоточности: как правильно разделять потоки чтения и записи, как сериализовать доступ к одному каналу связи, и насколько оправдано использование std::condition_variable. В статье показываю текущую реализацию потока опроса ПЛК и хочу услышать мнение коллег, которые разрабатывали промышленные SCADA-системы.
https://habr.com/ru/articles/1029582/
#scada #c++ #modbus #thread #mutex #многопоточность #плк #диспетчеризация #автоматизация #асутп
-
Многопоточность в SCADA системах
Пишу SCADA-ядро на C++ для инженерных систем: опрос ПЛК, кэширование значений, правила автоматики и управление исполнительными механизмами. На текущем этапе упёрся в практический вопрос многопоточности: как правильно разделять потоки чтения и записи, как сериализовать доступ к одному каналу связи, и насколько оправдано использование std::condition_variable. В статье показываю текущую реализацию потока опроса ПЛК и хочу услышать мнение коллег, которые разрабатывали промышленные SCADA-системы.
https://habr.com/ru/articles/1029582/
#scada #c++ #modbus #thread #mutex #многопоточность #плк #диспетчеризация #автоматизация #асутп
-
Многопоточность в SCADA системах
Пишу SCADA-ядро на C++ для инженерных систем: опрос ПЛК, кэширование значений, правила автоматики и управление исполнительными механизмами. На текущем этапе упёрся в практический вопрос многопоточности: как правильно разделять потоки чтения и записи, как сериализовать доступ к одному каналу связи, и насколько оправдано использование std::condition_variable. В статье показываю текущую реализацию потока опроса ПЛК и хочу услышать мнение коллег, которые разрабатывали промышленные SCADA-системы.
https://habr.com/ru/articles/1029582/
#scada #c++ #modbus #thread #mutex #многопоточность #плк #диспетчеризация #автоматизация #асутп
-
[Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков
Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для тех, кто строит или эксплуатирует highload‑системы, это хороший способ заново посмотреть на причины тормозов там, где код вроде бы уже давно «нормально работает». К сути статьи
https://habr.com/ru/companies/otus/articles/1025964/
#highload #инфраструктура_highload #Mechanical_Sympathy #производительность_ПО #многопоточность #оптимизация_highload
-
[Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков
Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для тех, кто строит или эксплуатирует highload‑системы, это хороший способ заново посмотреть на причины тормозов там, где код вроде бы уже давно «нормально работает». К сути статьи
https://habr.com/ru/companies/otus/articles/1025964/
#highload #инфраструктура_highload #Mechanical_Sympathy #производительность_ПО #многопоточность #оптимизация_highload
-
[Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков
Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для тех, кто строит или эксплуатирует highload‑системы, это хороший способ заново посмотреть на причины тормозов там, где код вроде бы уже давно «нормально работает». К сути статьи
https://habr.com/ru/companies/otus/articles/1025964/
#highload #инфраструктура_highload #Mechanical_Sympathy #производительность_ПО #многопоточность #оптимизация_highload
-
[Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков
Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для тех, кто строит или эксплуатирует highload‑системы, это хороший способ заново посмотреть на причины тормозов там, где код вроде бы уже давно «нормально работает». К сути статьи
https://habr.com/ru/companies/otus/articles/1025964/
#highload #инфраструктура_highload #Mechanical_Sympathy #производительность_ПО #многопоточность #оптимизация_highload
-
Легаси и минус 99% времени: пошаговый разбор оптимизации
Всем привет! Меня зовут Михаил, я главный эксперт в ОТП Банке. Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему. Разберем всё по шагам, с замерами производительности. Поехали! Смотрим вместе
https://habr.com/ru/articles/1024814/
#java #kotlin #spring #spring_boot #оптимизация #оптимизация_кода #многопоточность #postgresql #hibernate #legacy
-
Легаси и минус 99% времени: пошаговый разбор оптимизации
Всем привет! Меня зовут Михаил, я главный эксперт в ОТП Банке. Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему. Разберем всё по шагам, с замерами производительности. Поехали! Смотрим вместе
https://habr.com/ru/articles/1024814/
#java #kotlin #spring #spring_boot #оптимизация #оптимизация_кода #многопоточность #postgresql #hibernate #legacy
-
Легаси и минус 99% времени: пошаговый разбор оптимизации
Всем привет! Меня зовут Михаил, я главный эксперт в ОТП Банке. Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему. Разберем всё по шагам, с замерами производительности. Поехали! Смотрим вместе
https://habr.com/ru/articles/1024814/
#java #kotlin #spring #spring_boot #оптимизация #оптимизация_кода #многопоточность #postgresql #hibernate #legacy
-
Легаси и минус 99% времени: пошаговый разбор оптимизации
Всем привет! Меня зовут Михаил, я главный эксперт в ОТП Банке. Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему. Разберем всё по шагам, с замерами производительности. Поехали! Смотрим вместе
https://habr.com/ru/articles/1024814/
#java #kotlin #spring #spring_boot #оптимизация #оптимизация_кода #многопоточность #postgresql #hibernate #legacy
-
Многопоточная среда в разработке JAVA
Если ты разработчик, то тебя это коснется. Спустя какое то время, кто-то раньше, кто-то позже, но каждый приходит к тому, что пора реально взять и разобраться в многопоточке. Я как то писал статью для себя, когда готовился к собесам и понял, что мне самому очень вкатывает такой формат обучения, когда ты пишешь статью на тему, которую исследуешь изучаешь. Так информация осваивается в разы лучше. Поэтому я собираюсь пропустить через себя огромный объем информации по многопоточности. Буду работать как супер компьютер обрабатывать сразу все возможные ветки в направлении освоения многопоточности.
https://habr.com/ru/articles/1022934/
#многопоточность #многопоточное_программирование #многопоточность_на_java #многопоточные_приложения
-
Многопоточная среда в разработке JAVA
Если ты разработчик, то тебя это коснется. Спустя какое то время, кто-то раньше, кто-то позже, но каждый приходит к тому, что пора реально взять и разобраться в многопоточке. Я как то писал статью для себя, когда готовился к собесам и понял, что мне самому очень вкатывает такой формат обучения, когда ты пишешь статью на тему, которую исследуешь изучаешь. Так информация осваивается в разы лучше. Поэтому я собираюсь пропустить через себя огромный объем информации по многопоточности. Буду работать как супер компьютер обрабатывать сразу все возможные ветки в направлении освоения многопоточности.
https://habr.com/ru/articles/1022934/
#многопоточность #многопоточное_программирование #многопоточность_на_java #многопоточные_приложения
-
Многопоточная среда в разработке JAVA
Если ты разработчик, то тебя это коснется. Спустя какое то время, кто-то раньше, кто-то позже, но каждый приходит к тому, что пора реально взять и разобраться в многопоточке. Я как то писал статью для себя, когда готовился к собесам и понял, что мне самому очень вкатывает такой формат обучения, когда ты пишешь статью на тему, которую исследуешь изучаешь. Так информация осваивается в разы лучше. Поэтому я собираюсь пропустить через себя огромный объем информации по многопоточности. Буду работать как супер компьютер обрабатывать сразу все возможные ветки в направлении освоения многопоточности.
https://habr.com/ru/articles/1022934/
#многопоточность #многопоточное_программирование #многопоточность_на_java #многопоточные_приложения
-
Многопоточная среда в разработке JAVA
Если ты разработчик, то тебя это коснется. Спустя какое то время, кто-то раньше, кто-то позже, но каждый приходит к тому, что пора реально взять и разобраться в многопоточке. Я как то писал статью для себя, когда готовился к собесам и понял, что мне самому очень вкатывает такой формат обучения, когда ты пишешь статью на тему, которую исследуешь изучаешь. Так информация осваивается в разы лучше. Поэтому я собираюсь пропустить через себя огромный объем информации по многопоточности. Буду работать как супер компьютер обрабатывать сразу все возможные ветки в направлении освоения многопоточности.
https://habr.com/ru/articles/1022934/
#многопоточность #многопоточное_программирование #многопоточность_на_java #многопоточные_приложения
-
Параллельное слияние чанков в Manticore Search
Начиная с Manticore Search 24.4.0 , компактизация RT-таблиц использует более эффективную модель выполнения. Вместо последовательного слияния пар чанков оптимизация теперь поддерживает два важных улучшения:
https://habr.com/ru/articles/1022634/
#чанки #полнотекстовый_поиск #индексирование_текста #индексирование_данных #многопоточность #балансировка_нагрузки
-
Параллельное слияние чанков в Manticore Search
Начиная с Manticore Search 24.4.0 , компактизация RT-таблиц использует более эффективную модель выполнения. Вместо последовательного слияния пар чанков оптимизация теперь поддерживает два важных улучшения:
https://habr.com/ru/articles/1022634/
#чанки #полнотекстовый_поиск #индексирование_текста #индексирование_данных #многопоточность #балансировка_нагрузки
-
Параллельное слияние чанков в Manticore Search
Начиная с Manticore Search 24.4.0 , компактизация RT-таблиц использует более эффективную модель выполнения. Вместо последовательного слияния пар чанков оптимизация теперь поддерживает два важных улучшения:
https://habr.com/ru/articles/1022634/
#чанки #полнотекстовый_поиск #индексирование_текста #индексирование_данных #многопоточность #балансировка_нагрузки
-
Параллельное слияние чанков в Manticore Search
Начиная с Manticore Search 24.4.0 , компактизация RT-таблиц использует более эффективную модель выполнения. Вместо последовательного слияния пар чанков оптимизация теперь поддерживает два важных улучшения:
https://habr.com/ru/articles/1022634/
#чанки #полнотекстовый_поиск #индексирование_текста #индексирование_данных #многопоточность #балансировка_нагрузки
-
Многопоточный софт-процессор с архитектурой RISC-V… немного размышлений
Предполагается, что многопоточный вариант софт-ядра, позволит эффективнее встраивать его в FPGA-проекты в качестве управляющего, контролирующего блока. Выделенные теневые регистры состояний позволят упростить переключение контента между программными задачами и, дополнительно, упростят блок обработки прерываний. Следование концепции архитектуры RISC-V в некоторых моментах упрощает написание и поддержку программного кода на языках высокого уровня хотя в практике относительно небольших, или сильно специфических проектов выгоднее работать в рамках виртуальных языковых машин, или разрабатывать DSL. . В предложенной реализации микроархитектуры контексты потоков сохраняются в наборах т.н. теневых регистров, отображаемых в момент выполнения потока на регистры общего назначения x0-x31 и программный счетчик (PC). Предлагаемая концепция управления потоками выполнения предназначена, прежде всего, для софт-процессоров, и для систем с одним уровнем привилегий – машинным – уровень микроконтроллерных встраиваемых систем. Все потоки предполагаются равноправными и работающими в едином адресном пространстве. Защита данных потоков и контроль за доступом к общим переменным выносится на уровень программного обеспечения. Рассмотрение ведётся для минимального набора инструкций I+Zicsr (целочисленные операции плюс работа с регистрами специального назначения (CSR). Для управления и настройки параметров потоков предлагается задействовать набор CSR-регистров.
https://habr.com/ru/articles/1018752/
#RISCV #IPядра #софтпроцессор #многопоточность #hart #прототипирование
-
Многопоточный софт-процессор с архитектурой RISC-V… немного размышлений
Предполагается, что многопоточный вариант софт-ядра, позволит эффективнее встраивать его в FPGA-проекты в качестве управляющего, контролирующего блока. Выделенные теневые регистры состояний позволят упростить переключение контента между программными задачами и, дополнительно, упростят блок обработки прерываний. Следование концепции архитектуры RISC-V в некоторых моментах упрощает написание и поддержку программного кода на языках высокого уровня хотя в практике относительно небольших, или сильно специфических проектов выгоднее работать в рамках виртуальных языковых машин, или разрабатывать DSL. . В предложенной реализации микроархитектуры контексты потоков сохраняются в наборах т.н. теневых регистров, отображаемых в момент выполнения потока на регистры общего назначения x0-x31 и программный счетчик (PC). Предлагаемая концепция управления потоками выполнения предназначена, прежде всего, для софт-процессоров, и для систем с одним уровнем привилегий – машинным – уровень микроконтроллерных встраиваемых систем. Все потоки предполагаются равноправными и работающими в едином адресном пространстве. Защита данных потоков и контроль за доступом к общим переменным выносится на уровень программного обеспечения. Рассмотрение ведётся для минимального набора инструкций I+Zicsr (целочисленные операции плюс работа с регистрами специального назначения (CSR). Для управления и настройки параметров потоков предлагается задействовать набор CSR-регистров.
https://habr.com/ru/articles/1018752/
#RISCV #IPядра #софтпроцессор #многопоточность #hart #прототипирование
-
Многопоточный софт-процессор с архитектурой RISC-V… немного размышлений
Предполагается, что многопоточный вариант софт-ядра, позволит эффективнее встраивать его в FPGA-проекты в качестве управляющего, контролирующего блока. Выделенные теневые регистры состояний позволят упростить переключение контента между программными задачами и, дополнительно, упростят блок обработки прерываний. Следование концепции архитектуры RISC-V в некоторых моментах упрощает написание и поддержку программного кода на языках высокого уровня хотя в практике относительно небольших, или сильно специфических проектов выгоднее работать в рамках виртуальных языковых машин, или разрабатывать DSL. . В предложенной реализации микроархитектуры контексты потоков сохраняются в наборах т.н. теневых регистров, отображаемых в момент выполнения потока на регистры общего назначения x0-x31 и программный счетчик (PC). Предлагаемая концепция управления потоками выполнения предназначена, прежде всего, для софт-процессоров, и для систем с одним уровнем привилегий – машинным – уровень микроконтроллерных встраиваемых систем. Все потоки предполагаются равноправными и работающими в едином адресном пространстве. Защита данных потоков и контроль за доступом к общим переменным выносится на уровень программного обеспечения. Рассмотрение ведётся для минимального набора инструкций I+Zicsr (целочисленные операции плюс работа с регистрами специального назначения (CSR). Для управления и настройки параметров потоков предлагается задействовать набор CSR-регистров.
https://habr.com/ru/articles/1018752/
#RISCV #IPядра #софтпроцессор #многопоточность #hart #прототипирование
-
Многопоточный софт-процессор с архитектурой RISC-V… немного размышлений
Предполагается, что многопоточный вариант софт-ядра, позволит эффективнее встраивать его в FPGA-проекты в качестве управляющего, контролирующего блока. Выделенные теневые регистры состояний позволят упростить переключение контента между программными задачами и, дополнительно, упростят блок обработки прерываний. Следование концепции архитектуры RISC-V в некоторых моментах упрощает написание и поддержку программного кода на языках высокого уровня хотя в практике относительно небольших, или сильно специфических проектов выгоднее работать в рамках виртуальных языковых машин, или разрабатывать DSL. . В предложенной реализации микроархитектуры контексты потоков сохраняются в наборах т.н. теневых регистров, отображаемых в момент выполнения потока на регистры общего назначения x0-x31 и программный счетчик (PC). Предлагаемая концепция управления потоками выполнения предназначена, прежде всего, для софт-процессоров, и для систем с одним уровнем привилегий – машинным – уровень микроконтроллерных встраиваемых систем. Все потоки предполагаются равноправными и работающими в едином адресном пространстве. Защита данных потоков и контроль за доступом к общим переменным выносится на уровень программного обеспечения. Рассмотрение ведётся для минимального набора инструкций I+Zicsr (целочисленные операции плюс работа с регистрами специального назначения (CSR). Для управления и настройки параметров потоков предлагается задействовать набор CSR-регистров.
https://habr.com/ru/articles/1018752/
#RISCV #IPядра #софтпроцессор #многопоточность #hart #прототипирование
-
Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность
Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее. Но если копнуть глубже, оказывается, что это не совсем так. В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры: 👉 https://habr.com/ru/articles/1012874/ Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым. В этой статье разберёмся, почему async logging не делает логирование быстрее само по себе , и что на самом деле происходит внутри:
https://habr.com/ru/articles/1017842/
#с++ #логирование #асинхронное_программирование #производительность #многопоточность
-
Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность
Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее. Но если копнуть глубже, оказывается, что это не совсем так. В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры: 👉 https://habr.com/ru/articles/1012874/ Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым. В этой статье разберёмся, почему async logging не делает логирование быстрее само по себе , и что на самом деле происходит внутри:
https://habr.com/ru/articles/1017842/
#с++ #логирование #асинхронное_программирование #производительность #многопоточность
-
Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность
Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее. Но если копнуть глубже, оказывается, что это не совсем так. В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры: 👉 https://habr.com/ru/articles/1012874/ Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым. В этой статье разберёмся, почему async logging не делает логирование быстрее само по себе , и что на самом деле происходит внутри:
https://habr.com/ru/articles/1017842/
#с++ #логирование #асинхронное_программирование #производительность #многопоточность
-
Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность
Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее. Но если копнуть глубже, оказывается, что это не совсем так. В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры: 👉 https://habr.com/ru/articles/1012874/ Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым. В этой статье разберёмся, почему async logging не делает логирование быстрее само по себе , и что на самом деле происходит внутри:
https://habr.com/ru/articles/1017842/
#с++ #логирование #асинхронное_программирование #производительность #многопоточность
-
Взаимное исключение в Java: от synchronized к Lock
Многопоточность — одна из самых сложных тем в Java. По сути это ситуация, когда несколько потоков работают с общими данными и в процессе работы легко столкнуться с состоянием гонки (race condition), потерей обновлений или даже повреждением структуры данных. Чтобы этого избежать, доступ к критической секции кода нужно ограничить: одновременно там должен находиться только один поток. В Java есть два основных механизма для решения этой задачи: встроенное ключевое слово synchronized и явные блокировки из пакета java.util.concurrent.locks , наиболее популярная из которых — ReentrantLock . Оба подхода обеспечивают взаимное исключение ( mutex ), но работают по-разному и подходят для разных сценариев. В этой статье разберем, почему обычная переменная не подходит для многопоточного счета, как работают synchronized и ReentrantLock , и поможем выбрать правильный инструмент для вашей задачи.
-
Взаимное исключение в Java: от synchronized к Lock
Многопоточность — одна из самых сложных тем в Java. По сути это ситуация, когда несколько потоков работают с общими данными и в процессе работы легко столкнуться с состоянием гонки (race condition), потерей обновлений или даже повреждением структуры данных. Чтобы этого избежать, доступ к критической секции кода нужно ограничить: одновременно там должен находиться только один поток. В Java есть два основных механизма для решения этой задачи: встроенное ключевое слово synchronized и явные блокировки из пакета java.util.concurrent.locks , наиболее популярная из которых — ReentrantLock . Оба подхода обеспечивают взаимное исключение ( mutex ), но работают по-разному и подходят для разных сценариев. В этой статье разберем, почему обычная переменная не подходит для многопоточного счета, как работают synchronized и ReentrantLock , и поможем выбрать правильный инструмент для вашей задачи.
-
Взаимное исключение в Java: от synchronized к Lock
Многопоточность — одна из самых сложных тем в Java. По сути это ситуация, когда несколько потоков работают с общими данными и в процессе работы легко столкнуться с состоянием гонки (race condition), потерей обновлений или даже повреждением структуры данных. Чтобы этого избежать, доступ к критической секции кода нужно ограничить: одновременно там должен находиться только один поток. В Java есть два основных механизма для решения этой задачи: встроенное ключевое слово synchronized и явные блокировки из пакета java.util.concurrent.locks , наиболее популярная из которых — ReentrantLock . Оба подхода обеспечивают взаимное исключение ( mutex ), но работают по-разному и подходят для разных сценариев. В этой статье разберем, почему обычная переменная не подходит для многопоточного счета, как работают synchronized и ReentrantLock , и поможем выбрать правильный инструмент для вашей задачи.
-
Взаимное исключение в Java: от synchronized к Lock
Многопоточность — одна из самых сложных тем в Java. По сути это ситуация, когда несколько потоков работают с общими данными и в процессе работы легко столкнуться с состоянием гонки (race condition), потерей обновлений или даже повреждением структуры данных. Чтобы этого избежать, доступ к критической секции кода нужно ограничить: одновременно там должен находиться только один поток. В Java есть два основных механизма для решения этой задачи: встроенное ключевое слово synchronized и явные блокировки из пакета java.util.concurrent.locks , наиболее популярная из которых — ReentrantLock . Оба подхода обеспечивают взаимное исключение ( mutex ), но работают по-разному и подходят для разных сценариев. В этой статье разберем, почему обычная переменная не подходит для многопоточного счета, как работают synchronized и ReentrantLock , и поможем выбрать правильный инструмент для вашей задачи.
-
Первое знакомство с Rust
Язык программирования Rust в последние годы приобрел значительную популярность, выступая в качестве универсального языка, обеспечивающего высокую производительность и безопасную работу с памятью. Разработанный Mozilla, это современный язык программирования системного уровня, который является наиболее популярным среди разработчиков, работающих над различными приложениями, от операционных систем до веб-браузеров. Эта статья предназначена для тех, кто только начинает свое знакомство с миром Rust. Мы рассмотрим основные преимущества этого языка, установим необходимые компоненты и соберем первое приложение.
https://habr.com/ru/companies/otus/articles/1000836/
#rust #cargo #системное_программирование #безопасность_памяти #владение #многопоточность #типизация
-
Первое знакомство с Rust
Язык программирования Rust в последние годы приобрел значительную популярность, выступая в качестве универсального языка, обеспечивающего высокую производительность и безопасную работу с памятью. Разработанный Mozilla, это современный язык программирования системного уровня, который является наиболее популярным среди разработчиков, работающих над различными приложениями, от операционных систем до веб-браузеров. Эта статья предназначена для тех, кто только начинает свое знакомство с миром Rust. Мы рассмотрим основные преимущества этого языка, установим необходимые компоненты и соберем первое приложение.
https://habr.com/ru/companies/otus/articles/1000836/
#rust #cargo #системное_программирование #безопасность_памяти #владение #многопоточность #типизация