AFAIK, основная цель многопоточного программирования - увеличение производительности за счет использования нескольких процессорных ядер. Точка максимизирует параллельное выполнение.Какова цель классов, защищенных потоками данных?
Когда я вижу классы, основанные на потоковой передаче данных, я чувствую некоторую иронию. Поскольку средства обеспечения безопасности потоков обеспечивают последовательное выполнение (блокировка, атомарная операция или что-то еще), это антипараллельно. Thread-safe классы означает, что сериализация инкапсулирована и скрыта в классе, поэтому мы получим больше шансов принудительно выполнить серийное исполнение - потеря производительности. Было бы лучше управлять этим критическим сектором в более крупной (или самой большой) логике устройства - приложения.
Итак, почему люди нуждаются в потокобезопасных классах? Какова их реальная польза?
P.S. Я имел в виду класс, защищенный потоками - класс имеет только потокобезопасные методы, которые можно безопасно вызывать из нескольких потоков одновременно. Safe означает, что он гарантирует правильный результат чтения/записи. Правильно означает, что его результат равен результату при однопоточном выполнении. (Например, избегая ABA проблемы)
Так что я думаю, что термин потокобезопасности в моем вопросе содержит последовательное выполнение по определению. И именно поэтому я был смущен ради своей цели и задал этот вопрос.
Как бы вы хотели общаться между двумя разными потоками, если у вас не было потокобезопасного способа обмена данными? –
Вопрос: Что вы подразумеваете под «потоковым безопасным классом»? [К цитатам] (http://stackoverflow.com/questions/1344025/how-to-make-a-class-thread-safe): «Люди используют этот термин, как будто это означает что-то конкретное, когда на самом деле это просто означает «работает правильно в сценарии X».Без спецификации для «правильно» и утверждения о том, что такое X, вы не можете реально что-то реализовать и знаете, что решили ту проблему, которая у вас действительно есть ». – paulsm4
@ paulsm4 Я добавил дополнительный текст к своему вопросу. сделать смысл понятным. – Eonil