Высокоуровневые абстракции многопоточности/параллелизма для.NET

Не нужно быть быстрее, чем другой. Это не было верно перед Java 1.4.2, потому что при конкатенации больше чем двух строк с помощью "+" оператор, промежуточное звено String объекты будут созданы во время процесса создания заключительной строки.

Однако как JavaDoc для состояний StringBuffer, по крайней мере, начиная с Java 1.4.2 использования "+" оператор компилирует вниз в создание StringBuffer и append() луг много строк к нему. Так никакое различие, по-видимому.

Однако быть осторожным при использовании добавления строки для другой внутренней части цикл! Например:

String myString = "";

for (String s : listOfStrings) {
  // Be careful! You're creating one intermediate String object
  // for every iteration on the list (this is costly!)
  myString += s;
}

Имеют в виду, однако, что обычно конкатенация нескольких строк с "+" является более чистой, чем append() луг их всех.

7
задан MPelletier 5 May 2012 в 21:51
поделиться

2 ответа

В настоящее время ведутся активные и постоянные исследования лучших и наиболее эффективных абстракций, которые можно использовать для создания параллельного программного обеспечения, не разбираясь в мелочах, т.к. у большинства разработчиков нет времени или желания заниматься разработкой.

Учитывая это, BCL имеет довольно высокий барьер для входа новых концепций, но это не значит, что они не появляются. Совсем недавно в .Net 4 будет представлена ​​параллельная библиотека задач . Более ранние версии TPL на самом деле включали тип Future , который с тех пор был вытеснен более новыми абстракциями .

Также ведутся активные исследования. происходит на арене каналов и т. д. через исследовательский язык Axum .

I '

6
ответ дан 7 December 2019 в 05:24
поделиться

Я согласен с Грегом Д., впереди много чего. MS с новым фреймворком .Net4 и их проект Axum. Проблема, которую я вижу со всеми этими подходами, заключается в том, что они становятся чрезвычайно сложными, а навыки, знания и опыт в области распределенных / параллельных / распределенных вычислений довольно «ограничены». Я пишу это не для того, чтобы кого-то обидеть, но считаю, что университеты и преподаватели в целом должны уделять этим темам больше внимания. Но я думаю и надеюсь, что массовое осознание, которое MS создает с помощью реализации многих из этих идей, Axum, CCR & DSS, библиотеки асинхронных агентов и т. Д., И общей тенденции / потребности к многоядерной / облачной компьютерной системе, которую мы увидим подробнее :)

2
ответ дан 7 December 2019 в 05:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: