Q : Есть ли известный термин для моей проблемы?
Да ,
есть.
A con · tra · dic ·tion | [ˌkän-trə-ˈdik-shən]
Определение противоречия
… *
2a: суждение, утверждение или фраза, которая утверждает или подразумевает как истинность, так и ложность чего-либо
//… обе части противоречия не могут быть истинными…
- Томас Гоббс
2b: утверждение или фраза, части которой противоречат друг другу
// круглый квадрат является противоречием в терминах
3a: логическое несоответствие
3b: ситуация, в которой присуще факторы, действия или предложения противоречивы или противоречат друг другу
источник: Merriam-Webster
Информатика , позаимствовав термины { PARALLEL | SERIAL | CONCURRENT }
из теории систем, учитывает отличительные (и никогда не пересекающиеся) свойства каждого такого класса операций, где:
[PARALLEL]
оркестровка единиц работы подразумевает, что любая работа -блок: a) запускается и b) исполняется и c) завершается одновременно , т.е. все попадают в / из [PARALLEL]
-секций одновременно и будучи разработано в одно и то же время, а не иначе.
[SERIAL]
оркестровка единиц работы подразумевает, что все рабочие единицы должны обрабатываться в одном, stati c, известный, определенный порядок, начиная рабочие единицы в таком порядке, просто (известный) один после того, как предыдущий закончил свою работу - то есть один за другим , не иначе.
[CONCURRENT]
оркестровка разрешений единиц работы позволяет запускать более одной единицы работы, если позволяют ресурсы и условия системы (выполняются приоритеты планировщика), что приводит к неизвестному порядку выполнение и неизвестное время завершения, так как и первое, и второе зависят от неизвестных внешних факторов (системных условий и (не) -наготовленности ресурсов, которые / wi понадобится для разработки конкретного рабочего блока)
Принимая во внимание, что существует a-priori известный, встроенный смысл ORDER в [SERIAL]
-тип обработки (так как он уже был предварительно подключен к коду обработки-оркестрации единиц работы), он не имеет такого значения ни в [CONCURRENT]
, где случайное планирование c делает желаемый иметь порядок неопределенным случайным результатом из состояний системы, искаженным совпадением всех других внешних факторов, и тем же желаемым иметь порядок в основном единственное значение в истинном [PARALLEL]
по определению, так как все запускаются / исполняются / заканчиваются sh в одно и то же время - поэтому все единицы работы, выполняемые в стиле [PARALLEL]
, не имеют другого шанса, кроме как быть и 1-м, и последним одновременно .
Q : Есть ли любой способ Я мог бы работать параллельно и гарантировать ее порядок печати ?
Нет ,
, если вы не умышленно или неосознанно нарушаете правила оркестровки [PARALLEL]
и не вводите повторно [SERIAL]
-isiser logi c в рабочие блоки, чтобы принудительно принудительно применять любое такое желаемое упорядочение, которое не известно, тем менее естественным для первоначально [PARALLEL]
оркестровки рабочих блоков (как это принято в python - с использованием индолинированного степпинга GIL-монополиста - в качестве примера такого шага)
Q : Встречались ли другие с этим раньше?
Да .
С 2011 года каждый семестр этот или аналогично постулированные вопросы снова появляются здесь, на StackOverflow с растущими суммами г / г .