A thread is essentially a track of processing time. When you want to do something concurrently but separately from your main task, you create a new thread. There is more to it than that but that is the basic idea.
When I learned about it first someone explained it as if you load a web page but in the middle of it loading you decide you want to go somewhere else you hit the stop button. That stop button causes a new thread to ask the one that is loading the page to stop.
I don't know much about game programming but I would thing a process like leaf decay would be in it's own thread. It is possible that fixing the problem is simple but FINDING the cause isn't always as simple and can sometimes be staring you in the face. There are probably more important things to take care of right now and going back to something like that later can be more productive than sitting there trying to figure it out.
Since it seems to have broken with the biome update, I have a theory on how it worked...
Whenever a log was broken (or was it the last log? Never payed attention), it would go to each of the six surrounding blocks, and if it was a leaf, it would delete it, and check the six surrounding blocks of that leaf, and continue outward. It would have to have a limit otherwise we could delete large amounts of leaves in a group with only one tree. Perhaps 3 iterations was the limit? When biomes were released, we started to see areas with large forests full of close trees, and even 1 iteration could cause too much damage when removing leaves.
A nice fix would be linking the trunk with its leaves through use of a unique id, and when all of the trunk is gone, delete the leaves that share the id. The problem with this would be that existing trees in a world wouldn't be linked, only newly generated stuff.
Is that what you're asking?
(I can't believe phpBB doesn't have a horizonal rule...)