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

Как сделать неблокирующий поток или как вызвать функцию на си

и не ждать ее выполнения, а получить данные тогда, когда основная программа будет к этому морально готова?

21 ответов

17 просмотров

Для начала стоит сформулировать, что подразумевается под "когда основная программа будет морально готова". А если данные не будут готовы к этому моменту?

Лучшее_решение- Автор вопроса
Alexander Karaev
Для начала стоит сформулировать, что подразумевает...

Если данные не готовы - продолжить основную работу и повторить через N времени снова

Лучшее_решение
Если данные не готовы - продолжить основную работу...

Примитивный вариант - иметь какое-то синхронизированное расшаренное хранилище, в котором будут данные и флажок готовности данных. Остальное - вопрос красивых оберток

Лучшее_решение- Автор вопроса
Лучшее_решение- Автор вопроса
Лучшее_решение
У меня си

Разница непринципиальна. Переползай на С++

Лучшее_решение
У меня си

значит смотри как под твою платформу создавать потоки

Лучшее_решение- Автор вопроса
Denis P
значит смотри как под твою платформу создавать пот...

Потоки создав - программа будет обязана сделать join и получить таки ответ. А мне нужно асинхронность

Лучшее_решение- Автор вопроса
Denis P
join можно делать в самом конце main

То есть можно вообще не делать?

Лучшее_решение
То есть можно вообще не делать?

нет, что-то из join/detach всё равно надо будет вызвать

Лучшее_решение- Автор вопроса
Denis P
нет, что-то из join/detach всё равно надо будет вы...

Вне функции, где вызывался поток вызвать джоин нельзя?

Лучшее_решение
Вне функции, где вызывался поток вызвать джоин нел...

это обычная функция, можно вызвать где удобно

На Си потоков вообще нет, только через API OS. pthread_create например, что-то такое. Все потоки неблокирующие. Ну а когда программа будет готова - это её уже дело, она и будет данные запрашивать от потока.

Yalokin Kononov
C11 добавили threads.h

А ну да... Ну да .. только никто его не поддерживает...

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта