Jaka jest różnica między funkcją ponownego wejścia a funkcją bezpiecznego wątku?Różnica między Re-entrant a funkcją Thread-Safe
Odpowiedz
Czy sprawdziłeś numer wiki article on the subject. Wyjaśnia to dobrze, więc zobacz pełną dyskusję.
Kilka odpowiednie bity z artykułu:
W informatyce, program komputerowy lub podprogram nazywa wklęsłego, jeżeli może być przerwany w połowie jego realizacji, a następnie można bezpiecznie ponownie wywoływany ("re -entered ") przed wykonaniem poprzednich wywołań. Przerwanie może być spowodowane przez działanie wewnętrzne, takie jak skok lub wywołanie, lub przez działanie zewnętrzne, takie jak zakłócenie sprzętowe lub sygnał. Po zakończeniu ponownego wywoływania poprzednie wywołania zostaną wznowione.
i
Definicja ponowne wejścia różnią się od wątku bezpieczeństwa w środowisku wielowątkowych. Podprogram reentrantowy może osiągnąć bezpieczeństwo gwintu, ale sam reentrant może nie wystarczyć do zapewnienia bezpieczeństwa w każdej sytuacji. Odwrotnie, kod zabezpieczający wątek niekoniecznie musi być ciągły (patrz przykłady poniżej).
Proszę zamieścić faktyczną odpowiedź, która podsumowuje link w przypadku, gdy stanie się zimny (jak ma to miejsce tutaj i teraz). – nedR
Re-uczestnik oznacza brak stanu globalnego (tylko lokalny).
Bezpieczny wątek oznacza, że nie ma możliwości, aby 2 (lub więcej) wątków kolidowało ze sobą (zapisując sprzeczne wartości).
ale jak mówi Brian, artykuł wiki wyjaśnia to dobrze ... –
wątku bezpieczny funkcja można nazwać równocześnie z wielu wątków, nawet gdy inwokacje używać udostępnionych danych, ponieważ wszystkie odniesienia do wspólnych danych są szeregowane.
Funkcja reentrant może również nazwać jednocześnie z wielu wątków, ale tylko wtedy, gdy każdy inwokacja wykorzystuje swoje własne dane.
Stąd funkcja bezpieczny wątku jest zawsze wklęsłego, ale reentrant funkcja nie zawsze jest bezpieczny wątku.
Różnicę można cottoned na powyższy przykład
Klasa mówi się wklęsłego, jeżeli jego funkcje składowe można nazwać bezpiecznie z wielu nici, tak długo, jak każdy gwint wykorzystuje inną wystąpienie klasy. Klasa jest wątkowo bezpieczna, jeśli jej funkcje mogą być bezpiecznie wywoływane z wielu wątków, nawet jeśli wszystkie wątki używają tej samej instancji klasy.
Źródło: Qt
- 1. Różnica w JavaScript między funkcją a nową funkcją
- 2. Różnica między funkcją rbegin a funkcją końca w bibliotece standardowej
- 3. Jakakolwiek różnica między funkcją pierwszej klasy a funkcją wysokiego rzędu
- 4. Różnica między funkcją i Function.prototype
- 5. techniczna różnica między asynchroniczną funkcją ES7 a obietnicą?
- 6. RSpec: Jaka jest różnica między funkcją a specyfikacją żądania?
- 7. Różnica między funkcją inline i statyczną funkcją inline
- 8. Różnica między obiektem a *?
- 9. Różnica między jquery a $
- 10. Różnica między funkcją indexOf i findIndex macierzy
- 11. Jaka jest praktyczna różnica między funkcją statyczną a funkcją z "ukrytym" atrybutem widoczności?
- 12. różnica między funkcją (d) i funkcją (d, i)?
- 13. Jaka jest różnica między funkcją i funkcji
- 14. Jaka jest różnica między funkcjami a zamknięciami?
- 15. Dziwna interakcja między nową funkcją a eval
- 16. Różnica między String [] a i String ... a
- 17. Różnica między bip pid a $$
- 18. Różnica między kodowaniem a sortowaniem?
- 19. Różnica między onbeforeunload a onunload
- 20. Różnica między OpenCV a OpenCL
- 21. Różnica między wysokością a tłumaczeniemZ
- 22. Różnica między ApplicationInfo a PackageInfo?
- 23. Różnica między CMAKE_PROJECT_NAME a PROJECT_NAME?
- 24. Różnica między autoconf a autoreconf
- 25. Różnica między transakcją a transakcjąScope
- 26. Różnica między File.Copy a File.Move
- 27. Różnica między _declspec a __declspec?
- 28. Różnica między repozytorium a usługą?
- 29. Różnica między CCNode a CCLayer?
- 30. różnica między * y ++ a ++ * y?
http: // stackoverflow.com/questions/2274254/what-kind-of-code-można-nazwać-ponownie-uczestnikiem/2274289 # 2274289 –
bardzo podobne, jeśli nie identyczne: http://stackoverflow.com/questions/856823/threadsafe-vs- ponownie zgłoszony –