2014-08-28 10 views
5

Jaki jest model wątków używających biblioteki CT?
1:1 (Kernel-level threading)
N:1 (User-level threading)
M:N (Hybrid threading)Jaki jest model biblioteki "boost threading"

Różnica między tymi modelami (z wiki): http://en.wikipedia.org/wiki/Thread_(computing)#Models

Sprawdziłem witrynę doładowania i nie wspomniano o modelu gwintowania używa.
Myślę, że to jest 1: 1, ponieważ nie zapewniają funkcję jak yield lub reschedule, ale nie jestem pewien ...

+0

Gwintowanie na poziomie użytkownika jest realizowane za pomocą funkcji Corutine? również może zależeć od platformy. –

+0

+1. Wydaje się, że jest to dobre pytanie ... ale nie jestem pewien, czy to zrozumiałem, więc czy mógłbyś wyjaśnić różnice między modelami wymienionymi w twoim pytaniu? Lub podaj nam link, który je wyjaśnia. – Nawaz

+0

@Nawaz http://pl.wikipedia.org/wiki/Thread_(computing)#Models – pgplus1628

Odpowiedz

1

Jest rodzime wątki, a mianowicie, że użyje wątki Platforma, przynajmniej w systemach Linux, Windows i Mac.

O ile mi wiadomo, odwzorowanie wątku będzie 1: 1 z wątkiem jądra w systemie Windows, Linux i MAC dla każdego z wątku odradzania.

Nie jestem pewien, czy na innych platformach można to zaimplementować w inny sposób, ale nie znam implementacji wątku innego niż jądro za pomocą funkcji API boost.thread.

Dla "wątków" na poziomie użytkownika, przy wielozadaniowości współpracy można użyć metody boost.coroutine. Istnieje również nadchodząca biblioteka boost.fiber, która przypomina prawie boost.coroutine, ale dodaje interfejs API "thread" (na poziomie światłowodu w bibliotece) oraz user scheduler fiber scheduler.

  • Możesz znaleźć boost.fiber here.
  • Możesz znaleźć boost.coroutine here.
+1

thx za linki, świetna pomoc. czy są jakieś linki lub kody, które deklarują wątki platformy boost.thread? – pgplus1628

+0

Zapoznaj się z dokumentacją na http://www.boost.org/doc/libs/1_56_0/doc/html/thread.html możesz tam zobaczyć wszystkie makra konfiguracyjne. –