A good rule of thumb is try to stick to the same number of threads as you have processor cores, give or take one or two for user interactions/GUI if any.