Майже завжди простіше мислити послідовно, а потім пізніше модифікувати цю логіку, щоб краще працювати за допомогою ниток. І, як вислів іде: "Якщо він не порушений, не виправляйте його". Більшість програмістів не використовують нитки просто тому, що немає необхідності їх використовувати.
Якщо вам зручніше користуватися ними, більше сил вам. Однак знайте, що якщо потоки не забезпечують підвищення швидкості шляхом усунення вузьких місць, вони майже напевно сповільнюють вашу програму.
Також врахуйте, що системи, які присвячують лише одному процесору процес, змоделюють декілька потоків однією єдиною ниткою, щоб заощадити ресурси (це не часто трапляється з сучасними комп’ютерами, хоча додатки для смартфонів все ще дуже сильно піддаються цьому зловживанню). У цьому випадку, навіть якщо ви усунете вузькі місця за допомогою ниток, це насправді буде повільніше, ніж якщо ви взагалі не використовували потоки.
І, мабуть, найтонша причина обережності до використання ниток, але, безумовно, не менш важлива, нитки мають тенденцію робити те, чого ви не очікуєте. Так, якщо ви вживаєте запобіжних заходів, ви повинні бути добре. Так, якщо ваші потоки не записують до змінних, якими поділяються між потоками, вам слід добре. Однак, помилок, пов’язаних з потоками, дуже важко знайти. Оскільки я вважаю, що програміст ніколи не може повністю усунути можливість створювати помилки в коді, і тому програміст повинен вживати заходів щодо захисту від можливих помилок, а не зосереджуватися на повному їх усуненні, вам слід обов'язково застосувати цю ідею до жорсткого, щоб знайти також помилки з потоками. Іншими словами, знайте, що незважаючи на ваші найкращі зусилля,
Тож вам все-таки слід використовувати нитки? Що ж, здорове знання ниток - це, звичайно, не погана річ, особливо якщо ти стаєш хорошим у цьому. Однак рух пізно просувався до однопотокових мов, таких як node.js. Однією з головних переваг наявності одного потоку є те, що це легко масштабувати, і певні оптимізації можна зробити, якщо ви знаєте, що очікується, що інструкції будуть виконуватися послідовно (навіть якщо оптимізація може означати, що інструкції, які можна виконувати паралельно, можуть запускати асинхронно).
Тим не менш, я кажу, робіть те, що вам найбільше комфортно На мій досвід, написання програми, яку ви розумієте, має більший пріоритет, ніж змушення її працювати швидше. Просто не забудьте використовувати теми, коли ви думаєте, що це допомагає вам написати програму, а не тому, що ви хочете, щоб вона працювала швидше, оскільки ви не повинні так сильно турбуватися про продуктивність, як пишете програму (оптимізація важлива, але це також можна почекати).