Ejercicios sobre creación y manejo de Threads (Sin incluir Sincronización)

1.- Analice y ejecute varias veces el siguiente programa.

a) ¿Qué almacena la variable workSize?

b) ¿Cuántas hebras corren mientras ejecuta el programa?

c) Modifique el programa para que el arreglo que almacena los parámetros pasados a cada hebra (task) sea almacenado como variable local de main y no en el heap.

d) Usando la fórmula para calcular esa sumatoria, muestre el resultado esperado.

e) Para distintos valores de k usando el comando time obtenga los tiempos de ejecución ($time <ejecutable>).  ¿Puede usted explicar por qué el tiempo real es menor que el tiempo usuario en algunos casos?

f) ¿Cómo se comporta el tiempo real en la medida que el número de hilos crece?¿Cuántos core diría usted que tiene su computador?


2.- Analice y ejecute el siguiente programa. ¿Se produces inconsistencias al acceder dos hebras a una misma variable?
3.- Vea una modificación del programa previo para manejar el cambio entre dos strings. Verifique si se producen inconsistencias.