It isn't easy.
There are a few principles that make it work though. A lot of these are common to how computer systems manage time over the course of brief periods that can be measured in milliseconds or nanoseconds (let alone the minutes or hours that humans normally deal with).
Modern computers multi-task. Nowadays it's given for granted that a computer system should do more than one thing at a time in the foreground (the Apps that you're actually using) besides hundreds of other tasks in the background (programs that you don't see or use directly e.g. services like messaging, updates, maintenance, networking, etc.).
Let's see a few of the ways that computers do it and how translators bring it to a whole different level on account of its complexity.
This is normally related to CPUs (Central Processing Unit), how they get instructions, and what they're going to do in the next steps. Generally once an instruction is received the system tries to "guess" what resources it needs, how long it's going to take to "dismantle" an instruction, and figure out if there is anything that depends on something else to finish the execution of the instruction. How is this compared to what translators do?
Well, when a translator gets a project of any size they look at what they have to do and try to "guess" what resources are needed (dictionaries, glossaries, external help, googling, etc.), then they'll look at the material needing translation and break it up into units (to figure out what they can translate without any extra effort, what can be duplicated/repeated, what needs to be researched), and see if there are terms or sections that may depend on getting extra information from a client to better understand the topic at hand and finally finish the whole thing.
Scheduling is applied both to internal CPU workings and to Operating System (O.S.) prioritization. At the CPU level, it defines when an instruction will be allocated the time necessary to execute, taking into account also the time or its dependencies (on an advanced processor). In a Superscalar processor, it's necessary because it allows more than one thing to execute at the same time while getting the order of instructions correct, as in the case of there being a cascade of instructions that need to be executed.
On an O.S. level, this usually deals with how much time a certain thread or process (it can be made up of a single or multiple threads of execution) is going to get to run while everything else is temporarily suspended. The process or thread will be assigned an amount of time to run (time-slice), a priority, and a queue.
This stage could be compared to actual planning of what needs to be done. Normally a translator will set time for the translation, for breaks, for dealing with email or phone calls with the client, or other tasks required.
A time-slice is the actual time that a thread or process runs to accomplish its intended purpose.
Let's say that I have open a word processor, a music app, and a browser; all three programs are going to need to get a slice of time to run. Generally, computers will measure this in nanoseconds (a billionth of a second).
The end result is that to the user it seems as if all programs are running at the same time, but the reality is that only one thread is running at any given moment but all tasks are being switched very quickly and seamlessly in a way that is homogeneous in accord with the thread's priority.
It's similar to when a translator switches back and forth between the source material, the dictionary, and the actual translation they are typing. It all happens very quickly as a single flow but actually only one thing gets done at any single moment. And if you think that switching context is easy, think again. It's probably one of the hardest things to do while trying not to lose your train of thought.
As humans, we're all used to multi-tasking at some level but when it comes to difficult, high-level tasks like translation proficiency becomes imperative to accomplishing the work at hand.
Translators especially have the need to be able to multi-task more efficiently to deliver on time.
In the next article, we will see how this whole process can be improved in a way that is completely reliable.