Описание тега pthreads

Pthreads (POSIX Threads) - это стандартизированный API на основе C для создания потоков и управления ими. В настоящее время он определен в стандарте POSIX.1-2008 (IEEE Std 1003.1, издание 2013 г. / The Open Group Base Specifications Issue 7).
1 ответ

Функция Pthread не печатает

Я пытаюсь создать туннель и автомобильные нити, которые имитируют туннель, который идет только в одну сторону. Допустим, каждый путь - это W и B. Путь к W открыт на 5 секунд, затем туннель закрывается еще на 5, затем туннель открывается на путь B на…
20 апр '18 в 20:37
2 ответа

Небольшое увеличение производительности при использовании нескольких потоков

Я реализовал многопоточный метод Джордана-Гаусса для решения линейной системы и увидел, что работа на двух потоках занимает всего лишь примерно на 15% меньше времени, чем работа на одном потоке, вместо идеальных 50%. Поэтому я написал простую програ…
07 дек '15 в 15:46
2 ответа

Многопоточный TCP-сервер с сокетами C и pthreads - почему accept() блокирует второй запрос?

Я писал небольшой многопоточный TCP-сервер на C, используя unix-сокеты и pthreads, но у меня возникли проблемы с accept(). Он зависает при втором поступающем запросе и разблокируется только при выходе из предыдущего потока. Вот как я настроил сокет …
12 фев '17 в 16:03
1 ответ

pthread с php 7.0.8 (ZTS)

Я хотел бы использовать pthreads с php 7.0.8 (ZTS) (скомпилировано и настроено вручную). Я добавил следующую конфигурацию во время компиляции php: --enable-maintainer-zts \ --enable-pthreads=shared \ --with-tsrm-pthreads \ ВНИМАНИЕ: fpm запущен, pid…
04 июл '16 в 12:16
1 ответ

Указатели структуры в c не возвращают правильное значение

У меня есть эта программа: #include <stdio.h> #niclude ...... struct sort { char * array; int left,right; }; void quicksortthread(struct sort *s){ int left, right; int i, j, x, tmp; pthread_t *th1, *th2; char * v; struct sort s1; struct sort s…
29 мар '17 в 16:25
2 ответа

Нить с Laravel - класс модели не найден при вызове start()

Я использую Laravel 5.1 и пытаюсь запустить несколько потоков в классе Command: $documents->chunk(1000, function($documentChunk) use (&$threads, &$threadNumber, &$repository) { $threads[$threadNumber] = new MyThread($documentChunk); $…
17 июл '15 в 14:21
1 ответ

Условное изготовление резьбы

Я сделал эту проблему сам! Я читаю файл, в Cгде каждая строка содержит число (случайное число от 0 до 1000000): 1121 84 928434 9999 70373 ... Я читаю построчно, и для каждой строки я делаю некоторые вычисления и записываю большой кусок данных в файл…
30 июн '16 в 02:22
1 ответ

Как бы я изменил свою функцию, чтобы создать только один новый поток вместо двух, и при этом достичь того же отсортированного результата?

Я пишу параллельную сортировку слиянием, используя pthreads, Прямо сейчас я создаю два потока, и каждый сортирует половину данных. Затем результаты этих двух потоков объединяются. Тем не менее, я пытаюсь изменить свой код в функции, чтобы вместо это…
07 апр '18 в 21:04
1 ответ

Работает ли использование локальных в качестве аргументов в pthread_create()?

Это в основном вопрос о сфере и темах. Допустим, у нас есть следующая структура. struct Test { int number; std::string name; }; Экземпляр этой структуры будет использоваться в качестве аргумента в функции pthread_create. Вот пример того, как это мож…
01 фев '18 в 05:23
2 ответа

CMake Ошибка try_compile pthreads типа исполняемого файла

-- Looking for include file pthread.h -- Looking for include file pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads CMake Error at /usr/share/cmake/Modules/CheckLibrar…
04 июн '13 в 02:40
1 ответ

Когда я должен использовать потоки в задачах? - FreeRTOS

Я собираюсь разработать встраиваемую систему на основе FreeRTOS, которая будет работать на чипе ESP32. В соответствии с API Reference я могу создавать задачи, а также pthreads. Есть ли эмпирическое правило, которое говорит мне, должен ли я реализова…
11 июл '18 в 11:28
0 ответов

Текстовое сообщение не получено сервером через графический интерфейс клиента в GTK+

Я написал простую программу чата на C с TCP Socket (клиент и сервер) в Linux, и она отлично отправляет и получает сообщения в терминале. Затем я попытался создать графический интерфейс с GTK+, в котором были бы GLabel, текстовое поле (из которого по…
24 окт '15 в 20:46
1 ответ

Как сообщить NetBeans информацию о pthread_barrier_t

Я не могу заставить netbeans распознавать тип pthread_barrier_t. Я могу ввести #include<pthread.h> хорошо, но не повезло на pthread_barrier_t. Ниже приведена сборка и ошибка: g ++ -lpthread -c -g -MMD -MP -MF build / Debug / GNU-MacOSX / main.…
28 янв '12 в 03:54
1 ответ

Сервер и несколько клиентов, использующих pthreads и select()

Рассмотрим следующий кусок кода - int get_ready_connection(int s) { /* socket of connection */ int caller; if ((caller = accept(s,NULL,NULL)) < SUCCESS) { server_log->write_to_log(sys_call_error(SERVER, "accept")); return FAILURE; } return cal…
14 июн '16 в 21:53
1 ответ

Синхронизация потоков - блокировка приоритетов записи

Итак, я использую C в Unix-системе и имею доступ к библиотекам pthreads & semaphore.h. Вот проблема (я полагаю, что это сводится к проблеме "блокировки приоритета писателя"): Для простоты у меня есть два разных процесса, которые может запустить пото…
13 ноя '11 в 23:17
1 ответ

Передача сообщения между потоками в C

Я хочу отправить сообщение из основного процесса в каждую ветку и распечатать его (да, в каждой ветке). Как мне это сделать? Мне нужно отправить сообщение от мастера в ветку, затем распечатать его в ветке и закончить. Я получил этот код: #include &l…
27 окт '15 в 22:42
4 ответа

Должен ли я использовать Helgrind или DRD для обнаружения ошибок потока?

Похоже, у Valgrind есть два инструмента, которые оба обнаруживают ошибки потоков: Helgrind и DRD. Эти инструменты в значительной степени похожи. Мой основной вопрос: когда я должен использовать один вместо другого, чтобы проверить мой многопоточный …
16 ноя '11 в 19:43
2 ответа

Получение потока Core affinity в C++ 11 через pthreads

Я пытаюсь установить соответствие ядра (поток № 1 идет на первом ядре, поток № 2 идет на втором ядре, ...) при использовании std::thread в C++ 11. Я уже искал разные темы и в интернете, и кажется, что C++ 11 API не предоставляет такую ​​низкоуровнев…
16 апр '13 в 10:17
1 ответ

Управление связанным списком с помощью pthreads

Я пытаюсь смоделировать банк с линией клиентов, представленной связанным списком с потоком, вычисляющим вероятность того, что клиент входит (с заранее заданной вероятностью) каждую единицу времени, и добавляет клиента в конец строки, в то время как …
0 ответов

После pthread_cancel(), зависание вызова функции pthread_join()

Я написал приложение, которое создает поток и запускает цикл while. В приложении после создания потока я переопределил fork() системный вызов с pthread_atfork(), [когда fork называется, prepare Вызывается вызов функции, которая отменяет поток, и пос…
29 ноя '18 в 05:15