170 похожих чатов

Доброе утро! Помогите, пожалуйста с передачей и сохранением любой функции

в очереди. Почти всё работает)
https://cpp.sh/?source=%23include+%3Ciostream%3E%0A%0Ausing+namespace+std%3B%0A%0A%23include+%3Cchrono%3E%0A%23include+%3Cthread%3E%0A%23include+%3Cmutex%3E%0A%23include+%3Cqueue%3E%0A%23include+%3Ccondition_variable%3E%0A%0Ausing+namespace+std%3A%3Achrono%3B%0Ausing+namespace+std%3B%0A%0Atemplate%3Ctypename+F%3E%0Astruct+Job+%7B%0A++++time_point%3Csystem_clock%3E+time_to_exec%3B%0A%09F+func%3B%0A%7D%3B%0A%0Atemplate%3Ctypename+F%3E%0Ainline+bool+operator%3C(const+Job%3CF%3E+%26lhs%2C+const+Job%3CF%3E+%26rhs)+%7B%0A++++return+lhs.time_to_exec+%3C+rhs.time_to_exec%3B%0A%7D%3B%0A%0Astruct+Executor%0A%7B%0A++++Executor()+%7B%0A++++++++runner+%3D+thread(%26Executor%3A%3Arunning%2C+this)%3B%0A%09%7D%0A%0A++++~Executor()+%7B%0A%09%09unique_lock%3Cmutex%3E+lock(queue_mutex)%3B%0A%09%09stop+%3D+true%3B%0A%09%09runner.join()%3B%0A%09%7D%0A%0A%09void+running()+%7B%0A%09%09while(not+stop)+%7B%0A++++++++++++unique_lock%3Cmutex%3E+lock(queue_mutex)%3B%0A%0A%09%09%09if(jobs.empty())+%7B%0A++++++++++++++++cv.wait(lock%2C+%5Bthis%5D+()+%7Bnot+jobs.empty()+%7C%7C+stop%3B%7D)%3B%0A++++++++++++%7D+else+if+(jobs.top().time_to_exec+%3E+system_clock%3A%3Anow())+%7B%0A++++++++++++++++cv.wait_until(lock%2C+jobs.top().time_to_exec%2C+%5Bthis%5D()+%7Bnot+jobs.empty()+%7C%7C+stop%3B%7D)%3B%0A%09%09%09%7D+else+%7B%0A%09%09%09%09auto+job+%3D+jobs.top()%3B%0A%09%09%09%09jobs.pop()%3B%0A%09%09%09%09lock.unlock()%3B%0A%0A%09%09%09%09job()%3B%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%0A++++template%3Ctypename+F%3E%0A++++void+exec(F+f%2C+milliseconds+timeout)+%7B%0A++++++++Job+job(f%2C+system_clock%3A%3Anow()+%2B+timeout)%3B%0A%0A%09%09unique_lock%3Cmutex%3E+lock(queue_mutex)%3B%0A%09%09jobs.push(job)%3B%0A%09%09cv.notify_one()%3B%0A%09%7D%0A%0A++++priority_queue%3CJob%3CF%3E%3E+jobs%3B+%2F%2F+%3C-----------%3F...+o_O%0A++++mutex+queue_mutex%3B%0A%09condition_variable+cv%3B%0A%09thread+runner%3B%0A%09bool+stop+%3D+false%3B%0A%7D%3B%0A%0Astring+str+%3D+%221234567%22%3B%0Aint+foo(int+5)+%7B%0A++++cout+%3C%3C+%22out+finally!%22+%3C%3C+str%5B5%5D+%3C%3C+endl%3B%0A%7D%3B%0A%0Aint+main()%0A%7B%0A++++Executor+executor%3B%0A++++executor.exec(%5B%5D()%7Bcout+%3C%3C+%22out+finally!%22%3B%7D%2C+seconds%7B5%7D)%3B%0A++++executor.exec(%26foo%2C+5%2C+seconds%7B7%7D)%3B%0A++++cout%3C%3C%22Hello+World%22%3B%0A%0A++++return+0%3B%0A%7D%0A

1 ответов

17 просмотров

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
вопрос по москвину - не понимаю вот такого вопроса похоже Сколько разных всегда завершающихся функций с типом a -> a -> b -> a -> a можно реализовать? Две функции одинаково...
Fedor
11
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
11
Скажите, тут нет проблемы? IMyInterface1 = interface function GetInterface2: IInterface2; ... function TMyInterface.GetInterface2: IInterface2; begin Result := TI...
Ruslan aka DUDE
18
Как попросить stack install делать executable без .exe на винде?
Danila Danko
9
Утра доброго. Просветите пожалуйста. Хочу сделать rest сервер на делфи. Посмотрел 3 фреймворка: dmvc, Mars, mormot. Ни в одном из них не упоминается ассинхронная обработка вхо...
Сергей Бычков
10
возможно для форматирования TimeStampZ нужен другой механизм, не?
Роман Лях (rgreat)
13
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Карта сайта