powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++: как приткнуть свой поток к чужому API?
25 сообщений из 32, страница 1 из 2
C++: как приткнуть свой поток к чужому API?
    #40021241
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет
если код в main() запускает такое приложение:
Код: plaintext
1.
2.
3.
app.port(18080)
.multithreaded()
.run();


...которое имеет свой цикл, слушает порт и делает какую-то работу.
Но мне надо, чтобы ещё существовал мой "деятель", который будет свою магию творить, будет слушать, будет рутину всякую делать с тем же кодом, с которым будет работать приложение.
Например, я хочу ф-ю, которая будет что-то делать каждую минуту. И делать непременно с результатами работы кода приложения.
Как это правильно делается? Есть какой-то вариант, кроме параллельного отдельного демона?
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021247
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вынеси в отдельный поток свой код http://www.cplusplus.com/reference/thread/thread/
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021248
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
... мой "деятель", который будет свою магию творить, будет слушать, будет рутину всякую делать с тем же кодом, с которым будет работать приложение...

Вот с этим надо аккуратно. Использовать один и тот же объект с разных потоков можно только если разработчик того класса об этом позаботился. Читай доки по тому коду
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021269
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,
Не понял. На порт можно повесить только одно приложение.
Распиши пример кто что делает.
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021270
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
кроме параллельного отдельного демона
по умолчанию, в unix принято множить параллельные процессы. Потоки позже появились.
Имхо
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021289
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"потоки позже появились" полностью ортогонально с "принято множить параллельные процессы".
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021297
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
"потоки позже появились" полностью ортогонально с "принято множить параллельные процессы".
нет.
Без потоков как еще масштабироват то?
Только множить процессы.
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021323
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Вынеси в отдельный поток свой код http://www.cplusplus.com/reference/thread/thread/

так загвоздка в том, что непонятно, как его (поток) прикрутить к такому вот чужому коду...
это мне надо прямо в чужой код лезть и изменять его?
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021328
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78,
Не поток прикручивают. А берут кусок кода и запускают Его в потоке. Обособленный кусок.
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021329
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну а на этом примере как это выглядит?
Код: plaintext
1.
2.
3.
app.port(18080)
.multithreaded()
.run();
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021335
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
ну а на этом примере как это выглядит?
Код: plaintext
1.
2.
3.
app.port(18080)
.multithreaded()
.run();


Я тебе ссылку дал, если непонятно, то не пытайся, лучше делай отдельным приложением, так хотя бы исходное приложение не поломаешь.
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021340
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Я тебе ссылку дал, если непонятно, то не пытайся, лучше делай отдельным приложением, так хотя бы исходное приложение не поломаешь.

там то всё понятно, это же азбука
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  std::thread first (foo);     // spawn new thread that calls foo()
  std::thread second (bar,0);  // spawn new thread that calls bar(0)

  std::cout << "main, foo and bar now execute concurrently...\n";

  // synchronize threads:
  first.join();                // pauses until first finishes
  second.join();               // pauses until second finishes


непонятно другое, что в приложении уже есть свои треды
а мне чего надо засунуть это приложение в "first", а своё в "second"?
а как же .multithreaded() ? там накладок не будет?
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021348
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Без потоков как еще масштабироват то?
Только множить процессы.
Логика ушла погулять и не вернулась?
Или вас заточили в машину времени и вы можете работать только в древних хрюниксах, где потоков ещё нет?
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021350
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
непонятно другое, что в приложении уже есть свои треды
То, что вы хостите "чужой" многопоточный сервер - никак не мешает вам создавать создавать "собственные" потоки.
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021354
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
То, что вы хостите "чужой" многопоточный сервер - никак не мешает вам создавать создавать "собственные" потоки.

а засовывать в свой поток весь этот многопоточный сервер с его потоками не моветон ли?
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021361
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
а засовывать в свой поток весь этот многопоточный сервер с его потоками не моветон ли?
Какая разница кто создаёт потоки - "чужой" код или ваш "собственный"? Правильно - принципиальной разницы нет, хотя и могут быть разные ньюансы.
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021367
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78а засовывать в свой поток весь этот многопоточный сервер с его потоками не моветон ли?

Моветон. Поэтому делают наоборот - засовывают свой поток в этот весь многопоточный сервер.

tip78ну а на этом примере как это выглядит?

Так:
Код: sql
1.
2.
3.
4.
std::thread foo(my_thread_routine);
app.port(18080)
..multithreaded()
..run();


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021371
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, а как быть с этой частью?
Код: plaintext
1.
2.
3.
  // synchronize threads:
  first.join();                // pauses until first finishes
  second.join();               // pauses until second finishes
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021372
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78а как быть с этой частью?

Выкинуть как совершенно ненужную.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021380
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

tip78а как быть с этой частью?

Выкинуть как совершенно ненужную.

Исключение будет при выходе. Лучше так
Код: plaintext
1.
2.
std::thread foo(my_thread_routine).detach();
...
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021383
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот, теперь понятно
спасибо, мужики
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021384
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИсключение будет при выходе. Лучше так
Да, действительно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021386
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как бы вы сделали?
скомпилировали весь свой код вместе с чужим кодом, как я
или подняли бы своего демона и общались с API через сокет?
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021388
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
а как бы вы сделали?
скомпилировали весь свой код вместе с чужим кодом, как я
или подняли бы своего демона и общались с API через сокет?

API через сокет, т.к. если все вместе, то любой сбой твоего кода уронит все приложение.
...
Рейтинг: 0 / 0
C++: как приткнуть свой поток к чужому API?
    #40021391
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да и масштабированию тоже палки в колёса...
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / C++: как приткнуть свой поток к чужому API?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]