Непонимание разницы между однопоточным -и многопоточным -программированием

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

Предположим, что есть 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

Как я понимаю, только ОДИН поток будет выполняться в момент (получения ЦП ), и как только квант завершится, планировщик потоков предоставит время ЦП другому потоку.

Итак, какая программа будет закончена раньше? Является ли это многопоточной программой -(логически )? или это программа с одним потоком -(, поскольку многопоточность -имеет много переключений контекста -, что занимает некоторое время )? и почему? Мне нужно хорошее объяснение, пожалуйста:)

21
задан hvgotcodes 11 April 2012 в 17:09
поделиться