одну задачу посылать несколько потоков, везде пишут так быстрее и производительней, но в чем это заключается для каких задач это нужно? Просто по-сути получается так, что каждый раз просто к этой задаче подходит новый и новый поток(я представляю это в виде строителей, которые по очереди кладут кирпичи)
С днем каши в голове! Во-первых, не потоки “посылаются” на задачу, а последовательность команд, определяющая задачу, направляется на тот или иной поток для собсна выполнения процессором. Во-вторых, направлять эту самую последовательность команд сразу на несколько потоков имеет смысл только в том случае, если в этом последовательности команд есть подпоследовательности, совсем или почти друг от друга не зависящие и которые благодаря этому могут быть исполнены параллельно. В противном случае, действительно, получится как в твоей аналогии со строителями и кирпичами. В третьих, задача синхронизации возникает только тогда, когда-таки подпоследовательности зависят друг от друга, обычно по данным. Тогда добавляют синхронизацию, чтобы в нужной мере гарантировать порядок выполнения подпоследовательностей.
так, я люблю бытовые примеры из твоих слов я понял следующее: у меня есть стол с 2-мя пустыми стаканами - некая критическая зона, есть два друга(сразу видно что пример вымышленный) - потоки и я охраняю воду - локер Задача наполнить эти стаканы водой и получается такая ситуация, каждый из друзей подходит ко мне, берет некоторое количество воды, бежит к стакану и наполняет допустим стакан номер 1,другой же друг берет у меня воду и наполняет стакан номер 2, и так вот по очереди, один друг работает с первым стаканом, а другой со вторым, но если бы стакан был бы 1, то смысла в этом всем не было бы, я верно понял?
Ага, здесь как раз есть всю последовательность команд по взятию воды и наполнения ею двух стаканов можно разделить на две ПОЧТИ не зависящие друг от друга подпоследовательности команд “взять воду и наполнить первый стакан” и “взять воду и наполнить второй стакан”. Почти, потому что эти подпоследовательности зависят друг от друга на стадии взятия воды, как бы этим дружкам-пирожкам друг с другом не столкнуться или не раздолбать раздатчик воды. Если бы стакан был 1, то смысла бегать двум друзьям нет. А еще если бы раздатчиков было 2, то синхронизировать друзей тоже не нужно было бы.
понял, спасибо большое
Обсуждают сегодня