Pergunta envolvendo barreiras (exemplo das páginas 101/102 do java concurrency in practice)

Estou dando uma olhada no livro java concurrency in practice.

Nas páginas 101/102 tem um exemplo envolvendo o uso de barreiras.

Para resolver o problema, ele divide o problema em n sub-partes, onde n é o número de processadores disponíveis na máquina. São criadas n threads, e a cada iteração cada uma resolve uma sub-parte. Ao final da iteração, todas elas “entram” em uma barreira antes que se comece a próxima iteração.

Minha pergunta nem tem muito a ver com o funcionamento da barreira.

Tem uma nota de rodapé que diz o seguinte:

For computational problems like this that do no I/O and access no shared data, n or n +1 threads yield optimal throughput; more threads do not help and may in fact degrade performance as the threads compete for cpu and memory resources.

Se houvesse I/O então mais threads poderiam ser uteis ja que algumas poderiam estar realizando I/O enquanto outras usam os n processadores. Esta parte está clara pra mim. Mas e quanto ao acesso a memória compartilhada? Se houvesse isso, pq é que poderia ser interessante ter mais threads? E pq ele diz que n ou n+1 threads dão vazão ótima? Pra mim acho q está claro pq n threads dariam vazão ótima, mas pq n+1 também?