-
Data: 2020-06-09 00:32:25
Temat: Re: Integracja bibliotek event-based
Od: heby <h...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 08/06/2020 23:58, Maciej Sobczak wrote:
> Jakie jest poprawne rozwiązanie dla integracji tych 3 bibliotek?
To zależy co robią.
Jeśli ich zadaniem jest coś policzyć i zniknąć to masz dobrze.
Jesli ich zadaniem jest coś policzyć tylko jak będzie potrzeba to od
tego masz wsparcie OSa i jego pętlę komunikatów. Być może też jakieś
wątki pod spodem, ale klient o nich nie wie, bibliteka często też nie
wie. Ogólnie cooperative multitasking bazuje na tym że robisz jak
przychodzi jakiś event. Systemowy zazwyczaj. Można poprosić aby
przychodził non-stop jeden za drugim. Każdemu w/g potrzeb.
Oba podejścia są od dziesiątek lat katowane choćby w Qt i masz tam jakiś
obraz tego jak zrobić 1) (onIdle()) i jak zrobić 2) (push event). Mogą z
sobą działać bardzo gładko i elegancko.
Mam duże (w sensie wielopoziomoe) algorytmy rozbite na pojednycze kroki
i popychane z onIdle z głownej pętli. Spadek wydajności jest, ale
pomijalny, choć oczywiscie wszystko zależy od tego jak realizowany jest
yeld(). To podejście jest nie dla sztuki, tylko warunki brzegowe
utrudniają użycie watków. Na szczęscie nie ma najmniejszego problemu, w
dodatku mogę takie coroutines wrzucić *dynamicznie* do wątku i z niego
wyjąć kiedy tylko chcę, na przykład w połowie pracy.
Teoretycznie każdy algorytm można przerobić na coroutine za pomocą
boost::context ale koszt może być wysoki, to wszak przełącza kontekst,
prawie jak wątek. W przypadku ręcznym najczęściej pasuje jakiś wzorzec
typu maszyn stanów. Do ogarnięcia w typowych przypadkach, rekurencja
jest bardziej bolesna, ale niewiele.
Następne wpisy z tego wątku
- 09.06.20 00:38 heby
- 09.06.20 09:46 Mateusz Viste
- 09.06.20 22:58 Maciej Sobczak
- 09.06.20 23:18 heby
- 10.06.20 10:56 Mateusz Viste
- 10.06.20 23:19 Maciej Sobczak
- 11.06.20 10:37 Mateusz Viste
- 11.06.20 20:00 Maciej Sobczak
- 11.06.20 21:58 Mateusz Viste
- 12.06.20 20:55 Maciej Sobczak
- 13.06.20 09:33 Mateusz Viste
- 13.06.20 21:52 Maciej Sobczak
- 14.06.20 13:55 Mateusz Viste
- 14.06.20 20:52 Maciej Sobczak
Najnowsze wątki z tej grupy
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
- Ideologia Polskiego Programisty wer.3
Najnowsze wątki
- 2024-04-29 Warszawa => Staż w dziale Sprzedaży B2B (2 miejsca) <=
- 2024-04-29 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-04-29 Ulm => IT Network Engineer <=
- 2024-04-29 Gdańsk => UX/UI Designer <=
- 2024-04-29 Gdańsk => AI Specialist <=
- 2024-04-29 frankowicze odcinek NNN
- 2024-04-29 Warszawa => Specjalista ds. Cyberbezpieczeństwa <=
- 2024-04-29 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2024-04-29 Zielona Góra => Inżynier R&D Energoelektronik <=
- 2024-04-29 Warszawa => Google Ads Freelancer <=
- 2024-04-28 wymiana przewodu od licznika do mieszkania
- 2024-04-28 Lustra w maszynie ASML
- 2024-04-28 Elektryk przytarł podłogę
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM
- 2024-04-27 Nowy, "szybki "komputer AsRock nie posiada modułu TPM