2009-08-21 16 views

Odpowiedz

17

Multithreading jako rozpowszechniony model programowania i wykonywania pozwala na istnienie wielu wątków w kontekście pojedynczego procesu. Wątki te współdzielą zasoby procesowe, ale są w stanie wykonywać niezależne działania. Gwintowany model programowania zapewnia programiście użyteczną abstrakcję współbieżnego wykonywania. Jednak być może najciekawszym zastosowaniem tej technologii jest zastosowanie jej do pojedynczego procesu, aby umożliwić równoległe wykonanie w systemie wieloprocesorowym.

Oznacza to, że pojedynczy process może mieć wiele różnych „funkcje” executingconcurrently, umożliwiając stosowanie w celu lepszego wykorzystania dostępnego sprzętu (wielu rdzeni/procesorów). Wątki mogą się między nimi komunikować (mają shared memory), ale to hard problem, aby mieć każdy wątek behave well z podczas uzyskiwania dostępu do współużytkowanych obiektów/pamięci.

Nawlekanie umożliwia aplikacjom zachowanie czułości, bez korzystania z funkcji przechwytywania wszystkich pętli aplikacji, przy wykonywaniu długich operacji.

Na przykład program bez gwintu copy nie pozwala na wykonanie żadnych czynności do czasu zakończenia kopiowania.

Gwintowanie pomaga w złożonych, długich, niezależnych problemach, ale przynosi ze sobą a lot more complexity, co sprawia, że ​​jest to trudne nawet dla doświadczonych programistów.

1

Jest to aplikacja, która wewnętrznie używa więcej niż jednego thread, aby osiągnąć swój cel.

Istnieje wiele przykładów, ponieważ większość aplikacji, które wymagają interakcji z użytkownikiem, ma wątek interfejsu użytkownika i zestaw działających wątków. Odbywa się to, aby interfejs mógł pozostać aktywny, gdy aplikacja jest zajęta wykonywaniem niektórych zadań.

+4

Proces! = Wątek – ripper234

1

Aplikacja wielowątkowa korzysta z jednoczesnego uruchamiania wielu zadań, aby przyspieszyć działanie. Wielowątkowość może również korzystać z wielu maszyn CPU.

2

Jest to aplikacja, która może wykonywać wiele operacji naraz. Na przykład, jeśli wiążisz dokument w programie Word, wątek odpowiada na klawiaturę, istnieje wątek sprawdzający pisownię, jest taki, który sprawdza gramatykę, może istnieć inny wątek zapisujący kopię zapasową dokumentu na wypadek, gdyby awarie programu.

0

Jest to program, który używa więcej niż jednego thread. Różne wątki mogą uzyskać dostęp do współdzielonych struktur pamięci (zwykle za pomocą odpowiedniego synchronization mechanisms, np. locks). Przykładem może być program, który pobiera jednocześnie kilka plików, a każde pobranie przy użyciu innego wątku przyspiesza proces pobierania (istnieją bardziej wyrafinowane sposoby, aby to osiągnąć, to tylko przykład).

Wielowątkowość jest często używana w zadaniach związanych z procesorem, które korzystają z używania wszystkich rdzeni w nowoczesnym komputerze (np. Próbując złamać szyfr za pomocą wielu procesorów).

Różnica między wątkiem a procesem polega na tym, że różne procesy zwykle nie mogą bezpośrednio dzielić się pamięcią i strukturami danych, chociaż istnieją różne mechanizmy udostępniania informacji między procesami (zwykle są one bardziej kosztowne niż dzielenie się informacjami między wątkami).

0

co powiedział

Realizacja wątków i procesów różni się od jednego systemu operacyjnego do drugiego, ale w większości przypadków, wątek zawarty jest wewnątrz procesu. Wiele wątków może istnieć w ramach tego samego procesu i udostępniać zasoby, takie jak pamięć, podczas gdy różne procesy nie udostępniają tych zasobów.

-1

dla wątku musisz znać proces, który jest niczym innym jak instancją programu, weź przykład malowania w oknach po uruchomieniu go, tworzy jedną instancję lub proces programu malowania. Po otwarciu obrazu mulitple w innym oknie i robieniu wielu procesów tego programu. Podobnie wątek to jednostka znacząca dla procesu, widzimy okno z farbą, ale w tle jest wiele wątków, np. Kolor, pędzel, ołówek itp. Wątek służy do zmniejszenia obciążenia procesora.