One of the prime reasons for double buffering in computer video is due to the behavior of Cathode Ray Tubes (CRTs). Your average CRT consists of an electron gun pointed at an array of rasters, which make up the screen. Each physical pixel on a CRT is comprised of three phosphors, red, green and blue.

The CRT functions by using magnetic fields to aim electrons from the electron gun at these rasters. The electrons are charged precisely so that they will excite the phosphores in the screen and each raster will then display a color based on the additive sum of the excitation of the red, green, and blue elements.

However this is still a serial device, the electron gun excites one raster, then the next, usually in a pattern that starts at the top left corner, travels to the top right corner, and then moves down one row (a scanline), and repeats the process across the next row of rasters.

After all of the rasters on your screen have been drawn, the gun then moves from the bottom right corner to the top left corner and starts the whole process over again. This all happens so rapidly that your eye never catches it. On a 75 hz monitor, the entire process happens 75 times per second.

Now the basic way this works with your computer is to have a buffer, in which each value dictates what color an individual raster should be. Prior to double buffering, you would draw into the same buffer which the CRT would read the raster colors from. If you drew into this buffer at a place where the CRT was in the middle of reading values for rendering to the screen from, there would be a mismatch and the CRT would end up creating an artifact until the next scan cycle. When the screen is being animated on a per-pixel basis in rapid succession, this leads to alot of artifacts being generated. Double buffering is the de facto solution to combat this problem. Your drawing application draws into one buffer, and when it is done drawing it swaps this buffer with the one the screen reads from. When it has finished drawing the next complete frame of animation it then flips the buffers and continues this process ad infinitum. As long as the buffer flip operation is very fast, the drawing and rendering operations can operate independently of each other without any significant artifact generation.