Narzędzia użytkownika

Narzędzia witryny


bio-psiec:threads

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
bio-psiec:threads [2026/01/08 00:01]
jkonczak utworzono
bio-psiec:threads [2026/01/18 13:02] (aktualna)
jkonczak
Linia 184: Linia 184:
  
 void funkcja() { void funkcja() {
-    for (int i = 0; i < 3; ++i) {+    for (int i = 0; i < 5; ++i) {
         std::cout << "drugi wątek, iteracja " << i << std::endl;         std::cout << "drugi wątek, iteracja " << i << std::endl;
         usleep(100000);​         usleep(100000);​
Linia 208: Linia 208:
  
 void funkcja() { void funkcja() {
-    for (int i = 0; i < 3; ++i) {+    for (int i = 0; i < 5; ++i) {
         std::cout << "drugi wątek, iteracja " << i << std::endl;         std::cout << "drugi wątek, iteracja " << i << std::endl;
         usleep(100000);​         usleep(100000);​
Linia 251: Linia 251:
 </​code>​ </​code>​
  
-Dowolny wątek może stworzyć nowy wątek; poniżej przykład kodu tworzący ​17 wątków:+Dowolny wątek może stworzyć nowy wątek; poniżej przykład kodu tworzący ​wiele wątków:
 <code c++> <code c++>
 #include <​iostream>​ #include <​iostream>​
Linia 359: Linia 359:
 </​code>​ </​code>​
  
-Standard POSIX określa czy i jak można ​ją wykonywać funkcje współbieżnie z+Standard POSIX określa czy i jak można wykonywać funkcje współbieżnie z
 innymi. Dla gniazd TCP można współbieżne wywoływać operacje wejścia/​wyjścia innymi. Dla gniazd TCP można współbieżne wywoływać operacje wejścia/​wyjścia
-na tym samym gnieździe ​są one atomowetzn. wywołanie współbieżnie ​dwóch +na tym samym gnieździe. O ile dla niektórych rodzajów plików standard POSIX 
-''​send'' ​(lub dwóch ''​recv''​wykona najpierw jedno z tych wywołań, ​potem +określa że operacje wejścia/​wyjścia ​są atomowe ​(tzn. wywołanie współbieżnie 
-drugie.+dwóch ​''​write''​ lub dwóch ''​read''​ wykona najpierw jedno z tych wywołań,​ 
 +potem drugie), o tyle dla gniazd nie ma takiej gwarancji.
 \\ \\
-Przy czym trzeba ​pamiętać, że niektóre ​operacje mogą wysłać ​czy odczytać mniej +Trzeba ​pamiętać, że często ​operacje ​wejścia/​wyjścia ​mogą odczytać czy wysłać  
-danych niż żądał programista,​ więc zwykle i tak synchronizacja (przynajmniej +mniej danych niż żądał programista,​ więc zwykle i tak synchronizacja 
-odbierania) na tym samym gnieździe jest konieczna.+(przynajmniej odbierania) na tym samym gnieździe jest konieczna.
 \\ \\
 Zamknięcie połączenia TCP z jednego wątku przerywa operacje czekające na Zamknięcie połączenia TCP z jednego wątku przerywa operacje czekające na
Linia 391: Linia 392:
 wszystkim połączonym klientom. Zauważ że serwer musi jednocześnie czekać na wszystkim połączonym klientom. Zauważ że serwer musi jednocześnie czekać na
 nowych klientów i jednocześnie odbierać wiadomości od każdego z już połączonych. nowych klientów i jednocześnie odbierać wiadomości od każdego z już połączonych.
 +\\ 
 +Załóż że każde wysłanie wiadomości jest wykonywane bez blokowania.
bio-psiec/threads.1767826870.txt.gz · ostatnio zmienione: 2026/01/08 00:01 przez jkonczak