The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Доступен язык программирования Rust 1.16, opennews (?), 19-Мрт-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


11. "Доступен язык программирования Rust 1.16"  +1 +/
Сообщение от angra (ok), 19-Мрт-17, 10:56 
В невозможности без рантайма организовать green threads. То бишь придется ограничится потоками и процессами ОС. Хотя это как раз к concurrency, а не к распараллеливанию.
Ответить | Правка | Наверх | Cообщить модератору

14. "Доступен язык программирования Rust 1.16"  +1 +/
Сообщение от Аноним (-), 19-Мрт-17, 11:29 
вы неправильно понимаете что имеют ввиду под runtime в новости. Имеется в виду что это базовая возможность языка.
Ответить | Правка | Наверх | Cообщить модератору

17. "Доступен язык программирования Rust 1.16"  +3 +/
Сообщение от angra (ok), 19-Мрт-17, 11:37 
А может стоит пользоваться общепринятым значением термина, а не изобретать своё?
Ответить | Правка | Наверх | Cообщить модератору

58. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от Аноним (-), 19-Мрт-17, 13:19 
Это вопрос к автору новости. Либо читайте оригинал.
Ответить | Правка | Наверх | Cообщить модератору

16. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от Аноним (-), 19-Мрт-17, 11:37 
Да, именно в этом.
Из новости в новость пишется о высоком распараллеливании без рантайма. Как это работает?  
Напомню, что concurrency совсем не параллельность. А то, что разные горутины могут выполнятся одновременно - это заслуга операционной системы.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

20. "Доступен язык программирования Rust 1.16"  +/
Сообщение от angra (ok), 19-Мрт-17, 11:46 
> А то, что разные горутины могут выполнятся одновременно - это заслуга операционной системы.

Ну тогда уже это заслуга не ОС, а наличия нескольких процессоров и/или нескольких полноценных(не hyperthreading) ядер в одном процессоре.


Ответить | Правка | Наверх | Cообщить модератору

36. "Доступен язык программирования Rust 1.16"  +2 +/
Сообщение от freehckemail (ok), 19-Мрт-17, 12:33 
>>>> Concurrency я ещё представляю без рантайма
>>> А в чем видится проблема?
>> В невозможности без рантайма организовать green threads.
> Напомню, что concurrency совсем не параллельность.

Ребята, я вас не понимаю. Green threads - это как раз реализация concurrency и есть. Как вы его представляете без рантайма? Обязательно должен быть менеджер зелёных тредов в процессе.

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

38. "Доступен язык программирования Rust 1.16"  +/
Сообщение от angra (ok), 19-Мрт-17, 12:35 
Я как бы об этом и сказал.
Ответить | Правка | Наверх | Cообщить модератору

51. "Доступен язык программирования Rust 1.16"  +1 +/
Сообщение от freehckemail (ok), 19-Мрт-17, 13:01 
> Я как бы об этом и сказал.

Да я адресовл это вообще-то к анониму #6 и #16

Ответить | Правка | Наверх | Cообщить модератору

62. "Доступен язык программирования Rust 1.16"  +1 +/
Сообщение от Аноним (-), 19-Мрт-17, 14:05 
>>>>> Concurrency я ещё представляю без рантайма
>>>> А в чем видится проблема?
>>> В невозможности без рантайма организовать green threads.
>> Напомню, что concurrency совсем не параллельность.
> Ребята, я вас не понимаю. Green threads - это как раз реализация
> concurrency и есть. Как вы его представляете без рантайма?
> Обязательно должен быть менеджер зелёных тредов в процессе.

Я не использовал термином green threads т.к. не знаю его, я подумал, что товарищ понял мой вопрос и согласился с ним.
Возможно я чего-то недопонимаю. В Rust новостях  пишут о высокой возможности распараллеливания без рантайма. Еще раз говорю, concurency - это далеко не параллельность. То, что, скажем, golang несколько go-рутин вешает в разные потоки ОС и по факту они работают параллельно - это заслуга runtime golang. Без рантайм я могу себе представит просто concurrency, но без него не могу понять параллельность (многопоточность) - то, о чем пишется в каждой новости.

Ответить | Правка | К родителю #36 | Наверх | Cообщить модератору

65. "Доступен язык программирования Rust 1.16"  –2 +/
Сообщение от Аноним (-), 19-Мрт-17, 14:25 
Давайте тогда уж использовать полностью русские термины.
concurency  - конкурентность, когда поток(нить) один и задачи конкурируют между собой за доступ к нему. Всегда должен быть планировщик который будет разруливать кто сейчас работает.
Multithreading - паралельность, когда много потоков, один поток одна задача. Планировщик встроен в ОС.

>> то, о чем пишется в каждой новости.

на заборе тоже пишут, надеюсь мысль ясна.

Ответить | Правка | Наверх | Cообщить модератору

166. "Доступен язык программирования Rust 1.16"  +/
Сообщение от Аноним (-), 20-Мрт-17, 13:11 
И что из этого есть в Расте?
Ответить | Правка | Наверх | Cообщить модератору

76. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от angra (ok), 19-Мрт-17, 16:22 
Параллелизм это физическое одновременное исполнение кода на разных процессорах или ядрах. Он не является неотъемлемым свойством ЯП или даже ОС. Если у нас физически один процессор с одним ядром, то никакие действия со стороны ОС или ЯП не позволят параллельное исполнение. С другой стороны при наличии физической возможности, но без поддержки со стороны ЯП можно получить параллельное исполнение кода за счет запуска нескольких его экземпляров. Хотя тут уже небольшая поддержка нужна со стороны ОС, она должна уметь использовать более одного ядра/процессора и раскидывать по ним процессы. Для параллелизма runtime не нужен.

Concurency это модель написания программы. Она может быть реализована по разному. И вот для реализации ее в виде green threads(goroutines, erlang processes итд) уже нужен runtime(специальный код, добавляемый компилятором к основному коду программы для реализации определенных фич).


Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

124. "Доступен язык программирования Rust 1.16"  +/
Сообщение от freehckemail (ok), 19-Мрт-17, 21:59 
> Concurency это модель написания программы. Она может быть реализована по разному. И
> вот для реализации ее в виде green threads(goroutines, erlang processes итд)
> уже нужен runtime(специальный код, добавляемый компилятором к основному коду программы
> для реализации определенных фич).

Согласен, вот только хочу уточнить, что не обязательно компилятором. Зелёные треды вполне могут быть реализованы в виде модуля. Не знаю, может, это подразумевалось, но всё-таки обычно лучше, если очевидные вещи произнесены.

Ответить | Правка | Наверх | Cообщить модератору

54. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от freehckemail (ok), 19-Мрт-17, 13:04 
> green threads

Кстати, green threads - это, насколько мне известно, явовский термин. Не подскажете, как называют зелёные треды в других языках программирования? Есть общее слово?

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

61. "Доступен язык программирования Rust 1.16"  +1 +/
Сообщение от Аноним (-), 19-Мрт-17, 13:38 
это просто название абстракции. green threads, coroutines, fibers, goroutines. Суть одна это event loop.
Ответить | Правка | Наверх | Cообщить модератору

77. "Доступен язык программирования Rust 1.16"  +/
Сообщение от angra (ok), 19-Мрт-17, 16:25 
Под event loop обычно имеется ввиду совсем другая техника.


Ответить | Правка | Наверх | Cообщить модератору

93. "Доступен язык программирования Rust 1.16"  +/
Сообщение от Аноним (-), 19-Мрт-17, 17:39 
Ну вот давайте процитирую из главной gevent.
"gevent is a coroutine -based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libev event loop."
Ответить | Правка | Наверх | Cообщить модератору

97. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от angra (ok), 19-Мрт-17, 17:46 
И что? То, что какая-то либа в питоне одно маскирует под другое, как то меняет, что event loop это другая техника?
Ответить | Правка | Наверх | Cообщить модератору

99. "Доступен язык программирования Rust 1.16"  +/
Сообщение от Аноним (-), 19-Мрт-17, 18:10 
Ну и отлично. Опять в интернете кто то неправ.
Ответить | Правка | Наверх | Cообщить модератору

170. "Доступен язык программирования Rust 1.16"  –1 +/
Сообщение от Аноним (-), 20-Мрт-17, 13:48 
> Кстати, green threads - это, насколько мне известно, явовский термин.

Нет.

Термин (как ссылка на реализацию) означает "как-бы нити без поддержки (или без использования поддержки) нитей в операционной системе". Реализация сводится к сохранению/восстановлению контекста процесса (setjmp/longjmp calls) или, более современная, но основанная на тех же setjmp/longjmp  --- makecontext/getcontext/setcontext.

Реализация сама по себе очень стрёмная --- очень легко разнести себе стек без шансов понять что и откуда произошло.

Зелёные нити проталкивались GNU во времена, когда Линус считал нити полной херьнёй и не собирался их реализовывать. Впрочем, во многих операционках нитей тогда тоже не было.
Начальная идея, по всей видимости, происходила от Sun Microsystems.

Видимо поэтому они и попали в Яву --- дабы не зависеть от наличия нитей в операционке.

Ответить | Правка | К родителю #54 | Наверх | Cообщить модератору

131. "Доступен язык программирования Rust 1.16"  +/
Сообщение от А. Н. ОНим (?), 20-Мрт-17, 00:39 
> В невозможности без рантайма организовать green threads. То бишь придется ограничится потоками
> и процессами ОС. Хотя это как раз к concurrency, а не
> к распараллеливанию.

А кто сказал что оно green threads делает?

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

216. "Доступен язык программирования Rust 1.16"  –2 +/
Сообщение от Некулхацкер (?), 23-Мрт-17, 19:02 
Грин или не грин, по-моему, не важно совсем. Псевдо-потоки нужны для тех сред, которым нужно минимально с ОС взаимодействовать (той же Яве). Вот просто по концепции. Это их "фича". А коль такой задачи не стоит, то просто компилятор может некую предложенную на уровне грамматики языка конструкцию переделать в фактическую конструкцию целевой среды исполнения (где-то процессов ОС налепить, где-то потоков в процессе ОС). Вроде так.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру