Я неправильно понимаю разницу между однопоточным -и многопоточным -программированием, поэтому хочу получить ответ на следующий вопрос, чтобы все стало ясно.
Предположим, что есть 9 независимых задач, и я хочу выполнить их с помощью одной -многопоточной программы и многопоточной -программы. В основном это будет примерно так:
Однониточный -ниточный:
- Execute task 1
- Execute task 2
- Execute task 3
- Execute task 4
- Execute task 5
- Execute task 6
- Execute task 7
- Execute task 8
- Execute task 9
Многопоточный -ниточный:
Нить1:
- Execute task 1
- Execute task 2
- Execute task 3
Нить2:
- Execute task 4
- Execute task 5
- Execute task 6
Нить3:
- Execute task 7
- Execute task 8
- Execute task 9
Как я понимаю, только ОДИН поток будет выполняться в момент (получения ЦП ), и как только квант завершится, планировщик потоков предоставит время ЦП другому потоку.
Итак, какая программа будет закончена раньше? Является ли это многопоточной программой -(логически )? или это программа с одним потоком -(, поскольку многопоточность -имеет много переключений контекста -, что занимает некоторое время )? и почему? Мне нужно хорошее объяснение, пожалуйста:)