Перейти к основному содержимому

Чек-лист самопроверки

Разработчику Архитектору Инженеру

Чек-лист самопроверки

  1. Что такое процесс выполнения программы?
  2. Какие ресурсы выделяются каждому процессу операционной системой?
  3. Что такое поток выполнения?
  4. Чем поток отличается от процесса?
  5. Почему потоки считаются «легковесными» по сравнению с процессами?
  6. Какие преимущества даёт многопоточность?
  7. Какие риски возникают при использовании нескольких потоков в одном процессе?
  8. Что такое гонка данных (race condition)?
  9. Приведите пример ситуации, в которой может возникнуть гонка данных.
  10. Какие механизмы синхронизации вы знаете?
  11. Что такое мьютекс и для чего он используется?
  12. Как работает захват и освобождение мьютекса?
  13. В чём разница между мьютексом и семафором?
  14. Что такое спинлок и когда его использование оправдано?
  15. Что такое атомарная операция?
  16. Почему атомарные операции не требуют явной блокировки?
  17. Что такое deadlock (взаимная блокировка)?
  18. Какие условия необходимы для возникновения deadlock?
  19. Как можно предотвратить deadlock?
  20. Что такое starvation (голодание) в контексте многопоточности?
  21. Что такое live-lock и чем он отличается от deadlock?
  22. Что такое конкурентность?
  23. Что такое параллелизм?
  24. Может ли система быть конкурентной, но не параллельной?
  25. Может ли система быть параллельной без конкурентности?
  26. Что такое очередь задач и по какому принципу она работает?
  27. Что означает FIFO в контексте очередей?
  28. Как очереди используются в многопоточных системах?
  29. Что такое сообщение в контексте межпроцессного взаимодействия?
  30. Чем сообщение отличается от события?
  31. Что такое событие (event) в программировании?
  32. Как работает событийно-ориентированная архитектура (EDA)?
  33. Что такое синхронное выполнение задач?
  34. Что такое асинхронное выполнение задач?
  35. Почему асинхронность особенно важна для IO-bound задач?
  36. Что такое блокирующий и неблокирующий режимы ввода-вывода?
  37. Что такое Event Loop и как он работает?
  38. Что такое callback (функция обратного вызова)?
  39. Что такое Callback Hell и почему он возникает?
  40. Что такое корутина?
  41. Как корутины отличаются от обычных функций?
  42. Что делают ключевые слова async и await?
  43. Какие современные технологии обеспечивают асинхронный обмен данными в вебе?
  44. Чем WebSocket отличается от обычного HTTP-запроса?
  45. Что такое Server-Sent Events (SSE)?
  46. В чём разница между SSE и WebSocket?
  47. Как Web Workers помогают в браузерной асинхронности?
  48. Что такое порты завершения (completion ports) и где они используются?
  49. Какие проблемы могут возникнуть при неправильном управлении потоками?
  50. Какие инструменты отладки помогают анализировать поведение многопоточных приложений?

Освоение главы0%