Почти всегда проще мыслить последовательно, а затем модифицировать эту логику, чтобы лучше работать с потоками. И, как говорится в выражении: «Если оно не сломано, не чините его». Большинство программистов не используют потоки просто потому, что нет необходимости их использовать.
Если вы чувствуете себя более комфортно при использовании их, больше силы для вас. Однако знайте, что если потоки не обеспечивают повышения скорости за счет устранения узких мест, они почти наверняка замедляют вашу программу.
Также учтите, что системы, которые выделяют для процесса только один ЦП, будут моделировать несколько потоков одним потоком, чтобы сэкономить ресурсы (это не часто случается с современными компьютерами, хотя приложения для смартфонов все еще очень подвержены такому злоупотреблению). В этом случае, даже если вы устраняете узкие места с помощью потоков, на самом деле это будет медленнее, чем если бы вы вообще не использовали потоки.
И, возможно, самая тонкая причина проявлять осторожность при использовании потоков, но, что не менее важно, потоки имеют тенденцию делать то, чего вы не ожидаете. Да, если вы принимаете меры предосторожности, вы должны быть в порядке. Да, если ваши потоки не записывают в переменные, разделяемые между потоками, все будет в порядке. Тем не менее, связанные с потоками ошибки очень трудно найти. Поскольку я считаю, что программист не может полностью исключить возможность создания ошибок в коде, и поэтому программист должен принять меры для защиты от возможных ошибок, а не сосредоточиться на их полном устранении, вам определенно следует применить эту идею к найти нить ошибок, а также. Другими словами, знайте, что, несмотря на все ваши усилия,
Так что вы должны использовать темы в любом случае? Что ж, здоровое знание потоков - это, конечно, неплохая вещь, особенно если ты в этом разбираешься. Однако в последнее время движение было направлено на однопоточные языки, такие как node.js. Одним из основных преимуществ наличия одного потока является то, что его легко масштабировать, и некоторые оптимизации могут быть выполнены, если вы знаете, что инструкции должны выполняться последовательно (даже если оптимизация может означать, что инструкции, которые могут выполняться параллельно, могут работать асинхронно).
Тем не менее, я говорю, делай то, что тебе удобнее. По моему опыту, написание программы, которую вы понимаете, имеет более высокий приоритет, чем заставить ее работать быстрее. Просто убедитесь, что вы используете потоки, если считаете, что это помогает вам писать программу, а не потому, что вы хотите, чтобы она работала быстрее, поскольку вам не следует беспокоиться о производительности так сильно, как при написании программы (оптимизация важна, но тоже могу подождать).