The article is from 2008, so it applies to Python 2. I don't know enough about threading to say whether the same code will work in Python 3.
multiprocessing does use multiple cores, but is a heavyweight solution (separate, communicating processes, wrapped in a thread-like api). if you need multiple threads for cpu-related performance, it can be very useful.
python 2.6+, including 3.
http://toastdriven.com/blog/2008/nov/11/brief-introduction-m...