Romeo писал(а):Сионист, ты даже не представляешь, как подставился... Я даже не знаю, с какой стороны начать объяснять тебе, что ты профан, так как здесь с какой стороны не возьмись, перспективы по унижению просто неимоверные. Изо всех сил сдерживаю себя, чтобы не написать целый ворох гадостей весьма колких и болезненных. Пожалуй, сделаю скидку на возраст и просто объясняю на пальцах, что multhi-trhreading programming у тебя на уровне даже не студента (как С++), а как школьника.
Понимаешь, гонять в отдельной треде бесконечный цикл, проверяющий условие - это обозначает забить одно ядро процессора на 100%. Тебе на это сразу же указал Absurd, но ты будто бы не заметил его слов и, как обычно, продолжил флудить о чём-то слабо связанном с данной темой. Запомни на будущее, если будешь когда либо реализовывать подобное, в любом случае нужно делать sleep, давая возможность операционной системе выполнить на ядре другие потоки, которые нуждаются в процессорном времени.
Вот кто подставился то. В отличии от меня: стыдно быть не настоящим новичком, а липовым экспертом. Мне, кстати, не 90, чтоб скидку на возраст давать. Процессор
одноядерный, слыпа нет, цикл
бесконечный, поток
вторичный, при этом первичный поток успевает обрабатывать сообщения и даже работают другие процессы. Многозадачность в винде с 95-го года
вытесняющая. Слып я, кстати, пробовал, вторичный поток стал получать управление менее тысячи раз в секунду, без него тело цикла выполнялось более пяти тысяч раз в секунду. И была это первая проба клавы на тему потоков, а здесь помянута только для того, чтоб указать на то, что:
1. Проверять часы в принципе можно и не по таймеру.
2. Интервал опроса часов выдерживать не нужно, надо только обеспечить, чтоб он не был больше требуемой точности момента запуска запланированной задачи.
Теперь по поводу грева ядра:
1. Если приоритеты потоков не достаточно разнообразны, это проблема не моя, а конкретной оси.
2. Если кто то вообще не знает о приоритетах, то это его личная проблема.
3. Если действительно необходима частая проверка часов, то грев ядра вытекает из задачи через её ресурсоёмкость. И ни каким слыпом от него в этом случае не избавиться.
А теперь вопрос, чтоб окончательно посадить тебя в лужу: а для чего ж мне вообще могла понадобиться проверка часов в цикле, кроме как для слыпа по условию? Планировщиками то я не занимаюсь и даже не располагаю знаниями для запуска одного процесса из другого. Не подскажешь, кто мне новичковую книгу советовал? Причём, после моего поста о том, что подробную описаловку даже базовых операторов я ещё не читал. Ну сейчас то уже читаю, но до такого не дошёл. Остаётся два варианта: пересчёт приращения, с чем отлично справится и первичный поток, а усложнять прогу вторичным не нужно, но цикл именно во вторичном потоке и условный слып.
Romeo писал(а):СионистА ещё, я склеил твои сообщения. В глазах рябит от десятка сообщений по одной фразе в каждом. Ты что, счётчик накручиваешь или просто мысли настолько отрывочны в голове, что не можешь их организоваться в один обстоятельный пост?
Просто не удобно цитаты в ручную клеить: сначала нажать цитату, отредактировать пост, скопировать в буфер, нажать отмену, снова нажать цитату, отредактировать, вставить из буфера, скопировать в буфер целиком, повторить со слова "снова", вот и забываю иногда, что здесь посты автоматически не клеятся.