home.social

#многопоточность — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #многопоточность, aggregated by home.social.

  1. Что сейчас с Project Loom? Примеры и код

    Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?

    habr.com/ru/articles/1038528/

    #Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle

  2. Что сейчас с Project Loom? Примеры и код

    Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?

    habr.com/ru/articles/1038528/

    #Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle

  3. Что сейчас с Project Loom? Примеры и код

    Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?

    habr.com/ru/articles/1038528/

    #Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle

  4. Что сейчас с Project Loom? Примеры и код

    Практика Project Loom: как включить preview Structured Concurrency в javac, Maven и Gradle, как использовать ScopedValue для request context и StructuredTaskScope для параллельных вызовов, joiner’ы, timeout и связка обеих фич в одном примере. Примеры под JDK 25+ Что же с Project Loom?

    habr.com/ru/articles/1038528/

    #Java #Project_Loom #Structured_Concurrency #virtual_threads #Scoped_Values #StructuredTaskScope #JDK #многопоточность #Maven #Gradle

  5. Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency

    Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.

    habr.com/ru/articles/1037932/

    #Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK

  6. Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency

    Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.

    habr.com/ru/articles/1037932/

    #Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK

  7. Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency

    Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.

    habr.com/ru/articles/1037932/

    #Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK

  8. Project Loom: Virtual Threads, Scoped Values и preview #7 Structured Concurrency

    Project Loom меняет привычную модель конкурентности в Java: virtual threads делают потоки дешевле, Scoped Values дают аккуратную передачу контекста, а Structured Concurrency помогает управлять жизненным циклом связанных задач. Разбираем актуальное состояние Loom в JDK 25-27 и что из этого уже можно использовать.

    habr.com/ru/articles/1037932/

    #Java #Project_Loom #Virtual_Threads #Scoped_Values #Structured_Concurrency #JDK_27 #конкурентность #многопоточность #ThreadLocal #OpenJDK

  9. Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency

    Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure. Узнать что есть кроме Java Threads

    habr.com/ru/articles/1033894/

    #Java #JVM #многопоточность #Thread #Thread_Pool #ExecutorService #Virtual_Threads #Project_Loom #Structured_Concurrency #Blocking_IO

  10. Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency

    Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure. Узнать что есть кроме Java Threads

    habr.com/ru/articles/1033894/

    #Java #JVM #многопоточность #Thread #Thread_Pool #ExecutorService #Virtual_Threads #Project_Loom #Structured_Concurrency #Blocking_IO

  11. Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency

    Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure. Узнать что есть кроме Java Threads

    habr.com/ru/articles/1033894/

    #Java #JVM #многопоточность #Thread #Thread_Pool #ExecutorService #Virtual_Threads #Project_Loom #Structured_Concurrency #Blocking_IO

  12. Сравнение моделей конкурентности JVM языков: Треды, Пулы и Structured Concurrency

    Вы пробовали что-нибудь кроме new Thread() ? Конечно пробовали: Future ! И всё ?! Разберемся с разными моделями конкурентности в Java, Kotlin, Scala/ZIO и Clojure: у всех JVM под капотом, но подходы разные. Начнём с разбора тредов, пулов, virtual threads из Project Loom и Structured Concurrency. Дальше: корутины, fibers, ZIO runtime и Clojure. Узнать что есть кроме Java Threads

    habr.com/ru/articles/1033894/

    #Java #JVM #многопоточность #Thread #Thread_Pool #ExecutorService #Virtual_Threads #Project_Loom #Structured_Concurrency #Blocking_IO

  13. Невидимый враг многопоточности: False Sharing и кэш-линии процессора

    Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем дать каждому потоку свой собственный счетчик. Нет общих данных — нет блокировок, верно?

    habr.com/ru/articles/1032804/

    #false_sharing #многопоточность #оптимизация #кэш_процессора #lockfree #кэшлиния #производительность

  14. Невидимый враг многопоточности: False Sharing и кэш-линии процессора

    Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем дать каждому потоку свой собственный счетчик. Нет общих данных — нет блокировок, верно?

    habr.com/ru/articles/1032804/

    #false_sharing #многопоточность #оптимизация #кэш_процессора #lockfree #кэшлиния #производительность

  15. Невидимый враг многопоточности: False Sharing и кэш-линии процессора

    Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем дать каждому потоку свой собственный счетчик. Нет общих данных — нет блокировок, верно?

    habr.com/ru/articles/1032804/

    #false_sharing #многопоточность #оптимизация #кэш_процессора #lockfree #кэшлиния #производительность

  16. Невидимый враг многопоточности: False Sharing и кэш-линии процессора

    Представьте задачу: мы пишем высоконагруженный сетевой сервис и нам нужно считать входящие пакеты. Чтобы не блокировать потоки мьютексами, мы решаем дать каждому потоку свой собственный счетчик. Нет общих данных — нет блокировок, верно?

    habr.com/ru/articles/1032804/

    #false_sharing #многопоточность #оптимизация #кэш_процессора #lockfree #кэшлиния #производительность

  17. Многопоточность в SCADA системах

    Пишу SCADA-ядро на C++ для инженерных систем: опрос ПЛК, кэширование значений, правила автоматики и управление исполнительными механизмами. На текущем этапе упёрся в практический вопрос многопоточности: как правильно разделять потоки чтения и записи, как сериализовать доступ к одному каналу связи, и насколько оправдано использование std::condition_variable. В статье показываю текущую реализацию потока опроса ПЛК и хочу услышать мнение коллег, которые разрабатывали промышленные SCADA-системы.

    habr.com/ru/articles/1029582/

    #scada #c++ #modbus #thread #mutex #многопоточность #плк #диспетчеризация #автоматизация #асутп

  18. Многопоточность в SCADA системах

    Пишу SCADA-ядро на C++ для инженерных систем: опрос ПЛК, кэширование значений, правила автоматики и управление исполнительными механизмами. На текущем этапе упёрся в практический вопрос многопоточности: как правильно разделять потоки чтения и записи, как сериализовать доступ к одному каналу связи, и насколько оправдано использование std::condition_variable. В статье показываю текущую реализацию потока опроса ПЛК и хочу услышать мнение коллег, которые разрабатывали промышленные SCADA-системы.

    habr.com/ru/articles/1029582/

    #scada #c++ #modbus #thread #mutex #многопоточность #плк #диспетчеризация #автоматизация #асутп

  19. Многопоточность в SCADA системах

    Пишу SCADA-ядро на C++ для инженерных систем: опрос ПЛК, кэширование значений, правила автоматики и управление исполнительными механизмами. На текущем этапе упёрся в практический вопрос многопоточности: как правильно разделять потоки чтения и записи, как сериализовать доступ к одному каналу связи, и насколько оправдано использование std::condition_variable. В статье показываю текущую реализацию потока опроса ПЛК и хочу услышать мнение коллег, которые разрабатывали промышленные SCADA-системы.

    habr.com/ru/articles/1029582/

    #scada #c++ #modbus #thread #mutex #многопоточность #плк #диспетчеризация #автоматизация #асутп

  20. Многопоточность в SCADA системах

    Пишу SCADA-ядро на C++ для инженерных систем: опрос ПЛК, кэширование значений, правила автоматики и управление исполнительными механизмами. На текущем этапе упёрся в практический вопрос многопоточности: как правильно разделять потоки чтения и записи, как сериализовать доступ к одному каналу связи, и насколько оправдано использование std::condition_variable. В статье показываю текущую реализацию потока опроса ПЛК и хочу услышать мнение коллег, которые разрабатывали промышленные SCADA-системы.

    habr.com/ru/articles/1029582/

    #scada #c++ #modbus #thread #mutex #многопоточность #плк #диспетчеризация #автоматизация #асутп

  21. [Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков

    Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для тех, кто строит или эксплуатирует highload‑системы, это хороший способ заново посмотреть на причины тормозов там, где код вроде бы уже давно «нормально работает». К сути статьи

    habr.com/ru/companies/otus/art

    #highload #инфраструктура_highload #Mechanical_Sympathy #производительность_ПО #многопоточность #оптимизация_highload

  22. [Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков

    Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для тех, кто строит или эксплуатирует highload‑системы, это хороший способ заново посмотреть на причины тормозов там, где код вроде бы уже давно «нормально работает». К сути статьи

    habr.com/ru/companies/otus/art

    #highload #инфраструктура_highload #Mechanical_Sympathy #производительность_ПО #многопоточность #оптимизация_highload

  23. [Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков

    Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для тех, кто строит или эксплуатирует highload‑системы, это хороший способ заново посмотреть на причины тормозов там, где код вроде бы уже давно «нормально работает». К сути статьи

    habr.com/ru/companies/otus/art

    #highload #инфраструктура_highload #Mechanical_Sympathy #производительность_ПО #многопоточность #оптимизация_highload

  24. [Перевод] Почему ваш софт тормозит: принципы Mechanical Sympathy для разработчиков

    Железо давно научилось работать быстрее, чем большая часть прикладного софта успевает это заметить. Пока процессоры, кэши и ускорители становятся всё умнее, многие системы продолжают терять время на случайном доступе к памяти, лишней синхронизации и архитектурных решениях, которые плохо сочетаются с устройством машины. Эта статья — о mechanical sympathy, подходе, который помогает смотреть на производительность как на следствие понимания базовых ограничений и привычек железа: от строк кэша и ложного разделения до принципа одного писателя и естественной пакетной обработки. Для тех, кто строит или эксплуатирует highload‑системы, это хороший способ заново посмотреть на причины тормозов там, где код вроде бы уже давно «нормально работает». К сути статьи

    habr.com/ru/companies/otus/art

    #highload #инфраструктура_highload #Mechanical_Sympathy #производительность_ПО #многопоточность #оптимизация_highload

  25. Легаси и минус 99% времени: пошаговый разбор оптимизации

    Всем привет! Меня зовут Михаил, я главный эксперт в ОТП Банке. Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему. Разберем всё по шагам, с замерами производительности. Поехали! Смотрим вместе

    habr.com/ru/articles/1024814/

    #java #kotlin #spring #spring_boot #оптимизация #оптимизация_кода #многопоточность #postgresql #hibernate #legacy

  26. Легаси и минус 99% времени: пошаговый разбор оптимизации

    Всем привет! Меня зовут Михаил, я главный эксперт в ОТП Банке. Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему. Разберем всё по шагам, с замерами производительности. Поехали! Смотрим вместе

    habr.com/ru/articles/1024814/

    #java #kotlin #spring #spring_boot #оптимизация #оптимизация_кода #многопоточность #postgresql #hibernate #legacy

  27. Легаси и минус 99% времени: пошаговый разбор оптимизации

    Всем привет! Меня зовут Михаил, я главный эксперт в ОТП Банке. Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему. Разберем всё по шагам, с замерами производительности. Поехали! Смотрим вместе

    habr.com/ru/articles/1024814/

    #java #kotlin #spring #spring_boot #оптимизация #оптимизация_кода #многопоточность #postgresql #hibernate #legacy

  28. Легаси и минус 99% времени: пошаговый разбор оптимизации

    Всем привет! Меня зовут Михаил, я главный эксперт в ОТП Банке. Думаю, многие из вас сталкивались с легаси, которое нужно дорабатывать и оптимизировать. Сегодня хочу поделиться реальным кейсом как мы ускорили отправку данных в смежную систему. Разберем всё по шагам, с замерами производительности. Поехали! Смотрим вместе

    habr.com/ru/articles/1024814/

    #java #kotlin #spring #spring_boot #оптимизация #оптимизация_кода #многопоточность #postgresql #hibernate #legacy

  29. Многопоточная среда в разработке JAVA

    Если ты разработчик, то тебя это коснется. Спустя какое то время, кто-то раньше, кто-то позже, но каждый приходит к тому, что пора реально взять и разобраться в многопоточке. Я как то писал статью для себя, когда готовился к собесам и понял, что мне самому очень вкатывает такой формат обучения, когда ты пишешь статью на тему, которую исследуешь изучаешь. Так информация осваивается в разы лучше. Поэтому я собираюсь пропустить через себя огромный объем информации по многопоточности. Буду работать как супер компьютер обрабатывать сразу все возможные ветки в направлении освоения многопоточности.

    habr.com/ru/articles/1022934/

    #многопоточность #многопоточное_программирование #многопоточность_на_java #многопоточные_приложения

  30. Многопоточная среда в разработке JAVA

    Если ты разработчик, то тебя это коснется. Спустя какое то время, кто-то раньше, кто-то позже, но каждый приходит к тому, что пора реально взять и разобраться в многопоточке. Я как то писал статью для себя, когда готовился к собесам и понял, что мне самому очень вкатывает такой формат обучения, когда ты пишешь статью на тему, которую исследуешь изучаешь. Так информация осваивается в разы лучше. Поэтому я собираюсь пропустить через себя огромный объем информации по многопоточности. Буду работать как супер компьютер обрабатывать сразу все возможные ветки в направлении освоения многопоточности.

    habr.com/ru/articles/1022934/

    #многопоточность #многопоточное_программирование #многопоточность_на_java #многопоточные_приложения

  31. Многопоточная среда в разработке JAVA

    Если ты разработчик, то тебя это коснется. Спустя какое то время, кто-то раньше, кто-то позже, но каждый приходит к тому, что пора реально взять и разобраться в многопоточке. Я как то писал статью для себя, когда готовился к собесам и понял, что мне самому очень вкатывает такой формат обучения, когда ты пишешь статью на тему, которую исследуешь изучаешь. Так информация осваивается в разы лучше. Поэтому я собираюсь пропустить через себя огромный объем информации по многопоточности. Буду работать как супер компьютер обрабатывать сразу все возможные ветки в направлении освоения многопоточности.

    habr.com/ru/articles/1022934/

    #многопоточность #многопоточное_программирование #многопоточность_на_java #многопоточные_приложения

  32. Многопоточная среда в разработке JAVA

    Если ты разработчик, то тебя это коснется. Спустя какое то время, кто-то раньше, кто-то позже, но каждый приходит к тому, что пора реально взять и разобраться в многопоточке. Я как то писал статью для себя, когда готовился к собесам и понял, что мне самому очень вкатывает такой формат обучения, когда ты пишешь статью на тему, которую исследуешь изучаешь. Так информация осваивается в разы лучше. Поэтому я собираюсь пропустить через себя огромный объем информации по многопоточности. Буду работать как супер компьютер обрабатывать сразу все возможные ветки в направлении освоения многопоточности.

    habr.com/ru/articles/1022934/

    #многопоточность #многопоточное_программирование #многопоточность_на_java #многопоточные_приложения

  33. Параллельное слияние чанков в Manticore Search

    Начиная с Manticore Search 24.4.0 , компактизация RT-таблиц использует более эффективную модель выполнения. Вместо последовательного слияния пар чанков оптимизация теперь поддерживает два важных улучшения:

    habr.com/ru/articles/1022634/

    #чанки #полнотекстовый_поиск #индексирование_текста #индексирование_данных #многопоточность #балансировка_нагрузки

  34. Параллельное слияние чанков в Manticore Search

    Начиная с Manticore Search 24.4.0 , компактизация RT-таблиц использует более эффективную модель выполнения. Вместо последовательного слияния пар чанков оптимизация теперь поддерживает два важных улучшения:

    habr.com/ru/articles/1022634/

    #чанки #полнотекстовый_поиск #индексирование_текста #индексирование_данных #многопоточность #балансировка_нагрузки

  35. Параллельное слияние чанков в Manticore Search

    Начиная с Manticore Search 24.4.0 , компактизация RT-таблиц использует более эффективную модель выполнения. Вместо последовательного слияния пар чанков оптимизация теперь поддерживает два важных улучшения:

    habr.com/ru/articles/1022634/

    #чанки #полнотекстовый_поиск #индексирование_текста #индексирование_данных #многопоточность #балансировка_нагрузки

  36. Параллельное слияние чанков в Manticore Search

    Начиная с Manticore Search 24.4.0 , компактизация RT-таблиц использует более эффективную модель выполнения. Вместо последовательного слияния пар чанков оптимизация теперь поддерживает два важных улучшения:

    habr.com/ru/articles/1022634/

    #чанки #полнотекстовый_поиск #индексирование_текста #индексирование_данных #многопоточность #балансировка_нагрузки

  37. Многопоточный софт-процессор с архитектурой RISC-V… немного размышлений

    Предполагается, что многопоточный вариант софт-ядра, позволит эффективнее встраивать его в FPGA-проекты в качестве управляющего, контролирующего блока. Выделенные теневые регистры состояний позволят упростить переключение контента между программными задачами и, дополнительно, упростят блок обработки прерываний. Следование концепции архитектуры RISC-V в некоторых моментах упрощает написание и поддержку программного кода на языках высокого уровня хотя в практике относительно небольших, или сильно специфических проектов выгоднее работать в рамках виртуальных языковых машин, или разрабатывать DSL. . В предложенной реализации микроархитектуры контексты потоков сохраняются в наборах т.н. теневых регистров, отображаемых в момент выполнения потока на регистры общего назначения x0-x31 и программный счетчик (PC). Предлагаемая концепция управления потоками выполнения предназначена, прежде всего, для софт-процессоров, и для систем с одним уровнем привилегий – машинным – уровень микроконтроллерных встраиваемых систем. Все потоки предполагаются равноправными и работающими в едином адресном пространстве. Защита данных потоков и контроль за доступом к общим переменным выносится на уровень программного обеспечения. Рассмотрение ведётся для минимального набора инструкций I+Zicsr (целочисленные операции плюс работа с регистрами специального назначения (CSR). Для управления и настройки параметров потоков предлагается задействовать набор CSR-регистров.

    habr.com/ru/articles/1018752/

    #RISCV #IPядра #софтпроцессор #многопоточность #hart #прототипирование

  38. Многопоточный софт-процессор с архитектурой RISC-V… немного размышлений

    Предполагается, что многопоточный вариант софт-ядра, позволит эффективнее встраивать его в FPGA-проекты в качестве управляющего, контролирующего блока. Выделенные теневые регистры состояний позволят упростить переключение контента между программными задачами и, дополнительно, упростят блок обработки прерываний. Следование концепции архитектуры RISC-V в некоторых моментах упрощает написание и поддержку программного кода на языках высокого уровня хотя в практике относительно небольших, или сильно специфических проектов выгоднее работать в рамках виртуальных языковых машин, или разрабатывать DSL. . В предложенной реализации микроархитектуры контексты потоков сохраняются в наборах т.н. теневых регистров, отображаемых в момент выполнения потока на регистры общего назначения x0-x31 и программный счетчик (PC). Предлагаемая концепция управления потоками выполнения предназначена, прежде всего, для софт-процессоров, и для систем с одним уровнем привилегий – машинным – уровень микроконтроллерных встраиваемых систем. Все потоки предполагаются равноправными и работающими в едином адресном пространстве. Защита данных потоков и контроль за доступом к общим переменным выносится на уровень программного обеспечения. Рассмотрение ведётся для минимального набора инструкций I+Zicsr (целочисленные операции плюс работа с регистрами специального назначения (CSR). Для управления и настройки параметров потоков предлагается задействовать набор CSR-регистров.

    habr.com/ru/articles/1018752/

    #RISCV #IPядра #софтпроцессор #многопоточность #hart #прототипирование

  39. Многопоточный софт-процессор с архитектурой RISC-V… немного размышлений

    Предполагается, что многопоточный вариант софт-ядра, позволит эффективнее встраивать его в FPGA-проекты в качестве управляющего, контролирующего блока. Выделенные теневые регистры состояний позволят упростить переключение контента между программными задачами и, дополнительно, упростят блок обработки прерываний. Следование концепции архитектуры RISC-V в некоторых моментах упрощает написание и поддержку программного кода на языках высокого уровня хотя в практике относительно небольших, или сильно специфических проектов выгоднее работать в рамках виртуальных языковых машин, или разрабатывать DSL. . В предложенной реализации микроархитектуры контексты потоков сохраняются в наборах т.н. теневых регистров, отображаемых в момент выполнения потока на регистры общего назначения x0-x31 и программный счетчик (PC). Предлагаемая концепция управления потоками выполнения предназначена, прежде всего, для софт-процессоров, и для систем с одним уровнем привилегий – машинным – уровень микроконтроллерных встраиваемых систем. Все потоки предполагаются равноправными и работающими в едином адресном пространстве. Защита данных потоков и контроль за доступом к общим переменным выносится на уровень программного обеспечения. Рассмотрение ведётся для минимального набора инструкций I+Zicsr (целочисленные операции плюс работа с регистрами специального назначения (CSR). Для управления и настройки параметров потоков предлагается задействовать набор CSR-регистров.

    habr.com/ru/articles/1018752/

    #RISCV #IPядра #софтпроцессор #многопоточность #hart #прототипирование

  40. Многопоточный софт-процессор с архитектурой RISC-V… немного размышлений

    Предполагается, что многопоточный вариант софт-ядра, позволит эффективнее встраивать его в FPGA-проекты в качестве управляющего, контролирующего блока. Выделенные теневые регистры состояний позволят упростить переключение контента между программными задачами и, дополнительно, упростят блок обработки прерываний. Следование концепции архитектуры RISC-V в некоторых моментах упрощает написание и поддержку программного кода на языках высокого уровня хотя в практике относительно небольших, или сильно специфических проектов выгоднее работать в рамках виртуальных языковых машин, или разрабатывать DSL. . В предложенной реализации микроархитектуры контексты потоков сохраняются в наборах т.н. теневых регистров, отображаемых в момент выполнения потока на регистры общего назначения x0-x31 и программный счетчик (PC). Предлагаемая концепция управления потоками выполнения предназначена, прежде всего, для софт-процессоров, и для систем с одним уровнем привилегий – машинным – уровень микроконтроллерных встраиваемых систем. Все потоки предполагаются равноправными и работающими в едином адресном пространстве. Защита данных потоков и контроль за доступом к общим переменным выносится на уровень программного обеспечения. Рассмотрение ведётся для минимального набора инструкций I+Zicsr (целочисленные операции плюс работа с регистрами специального назначения (CSR). Для управления и настройки параметров потоков предлагается задействовать набор CSR-регистров.

    habr.com/ru/articles/1018752/

    #RISCV #IPядра #софтпроцессор #многопоточность #hart #прототипирование

  41. Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность

    Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее. Но если копнуть глубже, оказывается, что это не совсем так. В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры: 👉 habr.com/ru/articles/1012874/ Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым. В этой статье разберёмся, почему async logging не делает логирование быстрее само по себе , и что на самом деле происходит внутри:

    habr.com/ru/articles/1017842/

    #с++ #логирование #асинхронное_программирование #производительность #многопоточность

  42. Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность

    Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее. Но если копнуть глубже, оказывается, что это не совсем так. В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры: 👉 habr.com/ru/articles/1012874/ Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым. В этой статье разберёмся, почему async logging не делает логирование быстрее само по себе , и что на самом деле происходит внутри:

    habr.com/ru/articles/1017842/

    #с++ #логирование #асинхронное_программирование #производительность #многопоточность

  43. Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность

    Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее. Но если копнуть глубже, оказывается, что это не совсем так. В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры: 👉 habr.com/ru/articles/1012874/ Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым. В этой статье разберёмся, почему async logging не делает логирование быстрее само по себе , и что на самом деле происходит внутри:

    habr.com/ru/articles/1017842/

    #с++ #логирование #асинхронное_программирование #производительность #многопоточность

  44. Асинхронное логирование в C++ — не серебряная пуля: что на самом деле ограничивает производительность

    Асинхронное логирование давно считается “очевидной оптимизацией”: вынесли запись в отдельный поток — и всё стало быстрее. Но если копнуть глубже, оказывается, что это не совсем так. В предыдущей статье я разбирал производительность популярных C++ логгеров и показывал реальные цифры: 👉 habr.com/ru/articles/1012874/ Там уже было видно, что хорошо оптимизированное синхронное логирование может быть очень быстрым. В этой статье разберёмся, почему async logging не делает логирование быстрее само по себе , и что на самом деле происходит внутри:

    habr.com/ru/articles/1017842/

    #с++ #логирование #асинхронное_программирование #производительность #многопоточность

  45. Взаимное исключение в Java: от synchronized к Lock

    Многопоточность — одна из самых сложных тем в Java. По сути это ситуация, когда несколько потоков работают с общими данными и в процессе работы легко столкнуться с состоянием гонки (race condition), потерей обновлений или даже повреждением структуры данных. Чтобы этого избежать, доступ к критической секции кода нужно ограничить: одновременно там должен находиться только один поток. В Java есть два основных механизма для решения этой задачи: встроенное ключевое слово synchronized и явные блокировки из пакета java.util.concurrent.locks , наиболее популярная из которых — ReentrantLock . Оба подхода обеспечивают взаимное исключение ( mutex ), но работают по-разному и подходят для разных сценариев. В этой статье разберем, почему обычная переменная не подходит для многопоточного счета, как работают synchronized и ReentrantLock , и поможем выбрать правильный инструмент для вашей задачи.

    habr.com/ru/articles/1009610/

    #многопоточность #synchronized #reentrantlock

  46. Взаимное исключение в Java: от synchronized к Lock

    Многопоточность — одна из самых сложных тем в Java. По сути это ситуация, когда несколько потоков работают с общими данными и в процессе работы легко столкнуться с состоянием гонки (race condition), потерей обновлений или даже повреждением структуры данных. Чтобы этого избежать, доступ к критической секции кода нужно ограничить: одновременно там должен находиться только один поток. В Java есть два основных механизма для решения этой задачи: встроенное ключевое слово synchronized и явные блокировки из пакета java.util.concurrent.locks , наиболее популярная из которых — ReentrantLock . Оба подхода обеспечивают взаимное исключение ( mutex ), но работают по-разному и подходят для разных сценариев. В этой статье разберем, почему обычная переменная не подходит для многопоточного счета, как работают synchronized и ReentrantLock , и поможем выбрать правильный инструмент для вашей задачи.

    habr.com/ru/articles/1009610/

    #многопоточность #synchronized #reentrantlock

  47. Взаимное исключение в Java: от synchronized к Lock

    Многопоточность — одна из самых сложных тем в Java. По сути это ситуация, когда несколько потоков работают с общими данными и в процессе работы легко столкнуться с состоянием гонки (race condition), потерей обновлений или даже повреждением структуры данных. Чтобы этого избежать, доступ к критической секции кода нужно ограничить: одновременно там должен находиться только один поток. В Java есть два основных механизма для решения этой задачи: встроенное ключевое слово synchronized и явные блокировки из пакета java.util.concurrent.locks , наиболее популярная из которых — ReentrantLock . Оба подхода обеспечивают взаимное исключение ( mutex ), но работают по-разному и подходят для разных сценариев. В этой статье разберем, почему обычная переменная не подходит для многопоточного счета, как работают synchronized и ReentrantLock , и поможем выбрать правильный инструмент для вашей задачи.

    habr.com/ru/articles/1009610/

    #многопоточность #synchronized #reentrantlock

  48. Взаимное исключение в Java: от synchronized к Lock

    Многопоточность — одна из самых сложных тем в Java. По сути это ситуация, когда несколько потоков работают с общими данными и в процессе работы легко столкнуться с состоянием гонки (race condition), потерей обновлений или даже повреждением структуры данных. Чтобы этого избежать, доступ к критической секции кода нужно ограничить: одновременно там должен находиться только один поток. В Java есть два основных механизма для решения этой задачи: встроенное ключевое слово synchronized и явные блокировки из пакета java.util.concurrent.locks , наиболее популярная из которых — ReentrantLock . Оба подхода обеспечивают взаимное исключение ( mutex ), но работают по-разному и подходят для разных сценариев. В этой статье разберем, почему обычная переменная не подходит для многопоточного счета, как работают synchronized и ReentrantLock , и поможем выбрать правильный инструмент для вашей задачи.

    habr.com/ru/articles/1009610/

    #многопоточность #synchronized #reentrantlock

  49. Первое знакомство с Rust

    Язык программирования Rust в последние годы приобрел значительную популярность, выступая в качестве универсального языка, обеспечивающего высокую производительность и безопасную работу с памятью. Разработанный Mozilla, это современный язык программирования системного уровня, который является наиболее популярным среди разработчиков, работающих над различными приложениями, от операционных систем до веб-браузеров. Эта статья предназначена для тех, кто только начинает свое знакомство с миром Rust. Мы рассмотрим основные преимущества этого языка, установим необходимые компоненты и соберем первое приложение.

    habr.com/ru/companies/otus/art

    #rust #cargo #системное_программирование #безопасность_памяти #владение #многопоточность #типизация

  50. Первое знакомство с Rust

    Язык программирования Rust в последние годы приобрел значительную популярность, выступая в качестве универсального языка, обеспечивающего высокую производительность и безопасную работу с памятью. Разработанный Mozilla, это современный язык программирования системного уровня, который является наиболее популярным среди разработчиков, работающих над различными приложениями, от операционных систем до веб-браузеров. Эта статья предназначена для тех, кто только начинает свое знакомство с миром Rust. Мы рассмотрим основные преимущества этого языка, установим необходимые компоненты и соберем первое приложение.

    habr.com/ru/companies/otus/art

    #rust #cargo #системное_программирование #безопасность_памяти #владение #многопоточность #типизация