В чем разница между поточно-ориентированным и потоко-безопасным? - PullRequest
8 голосов
/ 05 декабря 2011

В чем разница между потоком - осведомленность и потоком - безопасность ?

Ответы [ 2 ]

8 голосов
/ 05 декабря 2011

вежливость http://sreekalyan.blogspot.com/2007/01/thread-safe-and-thread-aware.html

Thread Aware В любой момент времени на объекте может быть активен не более одного потока.Объект знает о потоках вокруг него и защищает себя от потоков, помещая все потоки в очередь.Поскольку в любой момент времени на объекте может быть активен только один поток, объект всегда будет сохранять свое состояние.Не будет никаких проблем с синхронизацией.

Потоковая безопасность: В определенный момент времени на объекте могут быть активны несколько потоков.Объект знает, как с ними бороться.Он правильно синхронизировал доступ к своим общим ресурсам.Он может сохранять свои данные состояния в этой многопоточной среде (то есть он не попадет в промежуточные и / или неопределенные состояния).Этот объект безопасно использовать в многопоточной среде.

Использование объекта, который не поддерживает ни потоки, ни поточнобезопасные, может привести к получению неверных и случайных данных и таинственным исключениям (из-за попытки доступаобъект, когда он используется потоком и находится в нестабильном промежуточном состоянии в момент доступа ко второму потоку).

1 голос
/ 05 декабря 2011

Я полагаю, что функция, которая выполняет свою собственную сериализацию блокировки мьютекса, является поточно-ориентированной, но, возможно, не поддерживает потоки.

...