Tengo una aplicación que estoy tratando de hacer multiproceso. Cada subproceso tendrá acceso a una gran cantidad de datos de solo lectura.¿Es aconsejable acceder a datos de solo lectura de múltiples hilos simultáneamente?
¿Está bien si varios hilos acceden a los datos simultáneamente? Sé que si los datos no fueran de solo lectura, tendría que usar mutexes u otra forma de sincronización para evitar condiciones de carrera. Pero me pregunto si está bien leer los datos sin tener en cuenta la sincronización.
Los datos en cuestión no se modificarán durante la duración de todos los hilos. La aplicación se ejecutará en Linux y Windows y está escrita en C++ si eso marca alguna diferencia.
Si bien la respuesta general ya está dada, me gustaría agregar una advertencia. Tenga cuidado si el recurso es una base de datos. Vea aquí: http://stackoverflow.com/questions/13912489/read-only-access-only-for-sqlite3-from-multiple-threads – Fabian
Tal vez el problema crítico es si el rendimiento se verá afectado, incluso si la lectura solo es un hilo seguro. Supongamos que 100 hilos están leyendo de un vector de 10000 elementos de múltiples índices aleatorios. –