Выполнение потоков: использование потоков задач

У меня есть требование создать дочерний поток, который будет выбирать только определенные папки из mainline(родительский) поток. При создании дочернего потока, для достижения этого я ограничиваю представление с помощью share/isolate/import успешно в состоянии создать дочерние потоки, которые интересуют только код.

Но я просмотрел несколько руководств по потокам и нашел кое-что в облегченных потоках (потоках задач), которые используются для создания потоков частично из родительского. В моем сценарии мне нужно действительно использовать это lightweight streams? Каковы основные преимущества и ограничения использования этих легких потоков по сравнению с обычным подходом, как я уже упоминал выше?

1 ответ

Цель потоков задач не состоит в том, чтобы создавать потоки "частично" - вы уже сделали это с вашим share/import пути. Не исправляйте то, что не сломано!

Потоки задач создаются так, чтобы быть недолговечными и легко архивируемыми после завершения связанной задачи (с помощью команды "unload"). Ограничения потоков задач описаны в документации здесь:

https://www.perforce.com/perforce/doc.current/manuals/p4v/Content/P4V/streams.task.html

а именно, что они не могут быть восстановлены, и они могут не иметь детей. Если вы используете потоки задач как краткосрочные потоки с одной задачей (как следует из названия "поток задачи", поток задач предназначен для одной задачи), эти ограничения, как правило, не будут проблемой. Если вы попытаетесь использовать поток задач в качестве основной линии разработки, у вас будут проблемы.

Если ваш процесс разработки включает создание новой ветки для краткосрочной задачи (например, отдельное исправление, привязанное к определенной ветке), и у вас много таких задач, потоки задач могут быть полезны из-за их легкой очистки и низких накладных расходов (когда поток задач выгружается, он удаляется из БД, что означает, что вы не накапливаете дб-фрейм с течением времени при создании и отказе от них).

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

(Можете ли вы сказать, что я видел несколько случаев, когда люди пытались использовать потоки задач для абсолютно всего, потому что они "звучат круто"? Не поддавайтесь искушению!)

Другие вопросы по тегам