проблемы с асинхронными потоками (используя pthread). извините, но более конкретно по телу - PullRequest
0 голосов
/ 03 апреля 2011

URL кода: http://pastebin.com/d62UWUtc

там почти 320 строк. с комментариями, которые объясняют каждую функцию и переменную. пожалуйста, сначала просмотрите его.

Теперь, если вы попытаетесь скомпилировать, то вы заметите, что первые 1-2 минуты директория, которая указана как «путь», пуста, потому что каждый файл для создаваемого потока удаляется почти сразу. но если вы подождете 2-3 минуты, вы увидите, что функция, которая удаляет файлы, просто опаздывает, а не удаляет некоторые файлы. вы можете увидеть то же самое из журнала программы.

вопрос: могу ли я сделать программу такой, чтобы она удаляла ЛЮБОЙ файл, который был создан, после правильного изучения файла?

1 Ответ

0 голосов
/ 03 апреля 2011

Ответ прост: просто синхронизируйте ваши потоки (барьеры, блокировки ... все, что вы хотите), чтобы ваш поток очистки мог ожидать освобождения ресурсов.

А если серьезно: почему вы используете файлы в этой ситуации? все, что связано с небольшими «временными файлами», само по себе сомнительно, особенно в многопоточных приложениях. Если вы действительно должны их использовать, по крайней мере, используйте tmpfile (). но из того, что я вижу из источника, они вам просто не нужны. Вы можете легко заменить их на многопоточную разделяемую память.

...