Невытесняющая это если процесс сам решает когда передать управление другим (например, после завершения какой-то подзадачи).
Как это показать тут я чот хз, какой-то слишком простой пример )
Я бы наверно делал, чтоб процессы выполняли какую-то более конкретную работу (считали что-то, …), и тогда в определенных местах функции делающей эту работу вызывал бы передачу управления другим.
Как примитивный вариант наверно можно в описание процесса
добавить свойства
на каком он сейчас кванте своей работы (изначально 0)
список номеров квантов, на которых он будет передавать управление
и гонять это в бесконечном цикле пока все не завершатся.
просто как я понял,это ещё ± правильный вариант,ибо прошлый был неверный и вообще не в ту степь.грубо говоря,нужно сделать цикл,который будет всё прогонять до завершения процесса,но как это оформить,вот с чем затрудняюсь
Чот не похоже.
Имеется в виду, что ожидание считать работой? (если нет, то тогда тут вообще ничего нет)
Для наглядности ставим паузу 5 сек time_to_sleep = 5, и видим, что оба процесса завершают ожидание одновременно, то есть никто никого не блокирует.
Вообще тут просто сравнение синхронного и асинхронного ожидания.
Тогда уж скорее первый пример невытесняющий:
second waited 3 seconds
second waited 3 seconds
second waited 3 seconds
second waited 3 seconds
first waited 3 seconds
first waited 3 seconds
first waited 3 seconds
first waited 3 seconds
но получается совсем уж примитивно, один процесс тупо ждет полного завершения другого, никто никогда не передает управление.
Да верно, наоборот подписал. (Исправил в пред-идущим посте).
Первый пример не разрешает второй процесс пока первый не выполнится полностью.
Во втором примере процессы чередуются. Точнее выполнятся будут одновременно если железо позволяет, чередоваться будут при работе на одном ядре ЦП. Но для этого может быть нужно будет код доработать.
Можно взять первый пример.
Вся это работа или нет, решайте сами.
Если это лаба тогда да, этого будет достаточно.
Для курсовой работы этого примитива не достаточно. Нужно усложнять код.
Над курсовой работой нужно работать. Курсовая работа это производная от работать.
Мне например будет не интересно, нет необходимости в данное время писать на Python нечто подобное.
Так а нам что, должно было как-то впечатлить?
Писал выше, не интересно.
Повезло бы в случае, если в данное время кто работал бы над похожей задачей и поделился бы. И то не факт.
Значит формулировка не внятная, или объявленный бюджет не соответствует трудовым затратам.
Посмотрите на студенческих биржах, там зачастую уже есть готовые решения. Или похожие которые доработают за оплату.
P. S.
В свое время обучения один раз обращался к фрилансерам.
А в остальном делал все самостоятельно, цель была обучение самого себя.
P. P. S. Python не моя стихия.
Но даже исходя из этого, лабу приведенную выше превратил бы в курсовую работу за две недели с нолевыми знаниями темы работы. Неделя на описательную часть, неделя на код.