- 
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Andrzej Jarzabek <a...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: procedura tworzenia program w
Date: Tue, 21 Feb 2012 23:23:15 +0000
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 59
Message-ID: <ji1911$k1e$1@inews.gazeta.pl>
References: <jhliut$3he$1@mx1.internetia.pl>
<pj0lc5k2ww4z$.j8cj3ca4fdmw$.dlg@40tude.net>
<jhodnv$9en$2@inews.gazeta.pl>
<1rvfbwvj4h0dr$.5mc1fgvvz1ws.dlg@40tude.net>
<jhoql7$kq0$1@inews.gazeta.pl> <jhr1lj$ub3$1@node2.news.atman.pl>
<c...@4...com>
<4f414c67$0$2374$c3e8da3$47a2c32d@news.astraweb.com>
<c...@4...com>
<jht6ai$1ip$1@inews.gazeta.pl> <jhthug$tib$1@mx1.internetia.pl>
<jhtk1u$f91$1@inews.gazeta.pl>
<7...@m...googlegroups.com>
<jhuege$cep$1@inews.gazeta.pl> <ji13jt$4bp$1@inews.gazeta.pl>
<ji15eb$a8k$1@inews.gazeta.pl>
NNTP-Posting-Host: 5ac5171b.bb.sky.com
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1329866593 20526 90.197.23.27 (21 Feb 2012 23:23:13 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Tue, 21 Feb 2012 23:23:13 +0000 (UTC)
X-User: septi
In-Reply-To: <ji15eb$a8k$1@inews.gazeta.pl>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120216
Thunderbird/10.0.2
Xref: news-archive.icm.edu.pl pl.comp.programming:195604
[ ukryj nagłówki ]On 21/02/2012 22:21, Wojciech Jaczewski wrote:
> Andrzej Jarzabek wrote:
>
>>> Nie mogę w takim przypadku używać pthread_cond_timedwait, bo zamiast
>>> poczekać planowane np. 5 sekund, raz poczeka mi 0 sekund a raz 5 minut.
>>
>> Ale pthread_cond_timedwait nie jest po to, żeby odmierzać czas!
>
> To po co w takim razie jest tam czas jako argument? I po co w ogóle istnieje
> ta funkcja, skoro jest pthread_cond_wait?
> Po prostu chciałem użyć pthread_cond_timedwait zgodnie z jej przeznaczeniem:
> poczekaj na zdarzenie lub upływ czasu. I w moich warunkach - nie mogę.
Ta funkcja, jak i wszystkie inne 'timed' nie jest po to, żeby jej używać
do normalnych czynności. Do tego, co próbujesz robić, powinieneś znowu
odpalić osobny wątek, który odczekuje odpowiednią ilość czasu i
sygnalizuje zmienną warunkową.
Funkcje 'timed' służą do zaimplementowania timeoutu, generalnie do
uniknięcia sytuacji, kiedy program by 'zwisał' albo zostawiał zbędne
wątki. Przykładowo jeśli wątkami realizujesz jakieś równolegle
działające komponenty w danym programie, to możesz chcieć mieć w tym
programie moduł monitorujący te komponenty, pozwalający użytkownikowi na
podglądnięcie, co program w danej chwili robi. I żeby taki moduł
wiedział, że dany wątek nadal żyje i czeka na cośtam, ten wątek może co
np. sekundę przerywać czekanie i wysyłać monitorowi komunikat 'nadal
żyję i czekam'. Inna możliwa sytuacja jest taka, że pewne wątki mogą
przestać być potrzebne - jako alternatywę dla pthread_cancel można
zaprojektować je tak, żeby periodycznie sprawdzały, czy powinny jeszcze
istnieć i jeśli nie, to się same zamykały.
>> Większa ilość wątków nie oznacza większej komplikacji - te wątki są
>> zresztą bardzo proste. A ponieważ - zwłaszcza jeśli się martwisz o
>> komplikację programu - masz to schowane za warstwą abstrakcji, to nie
>> robi to żadnej różnicy
>
> Do czasu, gdy nie pojawia się błąd - być może w zupełnie innej części,
> którego nie mogę wypatrzeć - wtedy nie mogę sobie na ślepo przyjąć
> założenia, że inne części, działające w innych wątkach są OK - w ramach
> szukania przyczyny błędu muszę zajrzeć także do nich. To, że zostało to
> schowane za warstwą abstrakcji wiele nie zmienia.
Właśnie wiele zmienia, bo pozwala na wnioskowanie o poszczególnych
częściach programu w izolacji. Oczywiście jeśli twój program ma UB, to
teoretycznie wszystko jest możliwe, ale w tym przypadku też można
dedukować przyczyny po objawach. Poza tym im prostszy dany element, tym
mniejsze prawdopodobieństwo, że ma UB. Np. funkcja typu void, która
blokuje aż będzie coś na wejściu czy innym sockecie, jest bardzo prosta.
Funkcja, która wywołuje zadaną funkcję typu void i ustawia zmienną
warunkową jest również bardzo prosta (a tę jedną funkcję możesz
wykorzystać do obsługi wszystkich interesujących cię zdarzeń,
wymieniając tylko która funkcja ma być wywołana.
Oczywiście do tego wszystkiego dobrze mieć jeszcze język wspierający
abstrakcję, a jeszcze lepiej do tego sensowne biblioteki, a nie grzebać
się w gołych pthreadsach. W ogóle jedyny racjonalny powód, jaki widzę,
żeby cokolwiek robić w pthreadsach, to napisanie Nowej Jeszcze
Zajebistszej Od Wszystkich Istniejących Biblioteki Do Wątków
(zajebistszej pod jakimkolwiek interesującym nas względem naturalnie).
 
Najnowsze wątki z tej grupy
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
 - Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
 - Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
 - Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
 - Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
 - We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
 - Ada-Europe - AEiC 2025 early registration deadline imminent
 - John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
 - Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
 - Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
 - ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
 - Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
 - Brednie w wiki - hasło Dehomag
 - Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
 - Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
 
Najnowsze wątki
- 2025-11-04 Jak sie smazy elektronike z odleglosci kilkuset metrów?
 - 2025-11-04 Warszawa => DevOps Engineer <=
 - 2025-11-04 Warszawa => OSS System Administrator <=
 - 2025-11-04 4 lata za zabicie czlowieka, czyli prawo w Polsce
 - 2025-11-04 Warszawa => APM/Observability Engineer (Inżynier Presales) <=
 - 2025-11-04 Zasieg elektrykow
 - 2025-11-03 Gwarancja na używane AUTO. Czy dziś WARTO?
 - 2025-11-03 Znowu jakiś goooownoprawnik uważający się za KONSTYTUCJONALISTĘ
 - 2025-11-03 ABW już nie blokuje RT.com?
 - 2025-11-03 Czy ROZDANIE KPO śród swoich i nie swoich spowodowało KORZYŚĆ POLITYCZNĄ?
 - 2025-11-03 Warszawa => Starszy Konsultant SAP - obszar PP <=
 - 2025-11-03 Warszawa => International Freight Forwarder <=
 - 2025-11-03 Białystok => Programista React ze znajomością C++ <=
 - 2025-11-03 Warszawa => Generative AI Engineer <=
 - 2025-11-03 Warszawa => Gen AI Engineer <=
 




Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei