I can not talk about performance between the two of them, but I assume that due to the additional logic boost::shared_mutex can be slower. Because of this, depending on how many readers you have, you can block the flow of letters longer than you would like, since he would have to wait until all the reads were completed.
source share