(Most people who try this, however, make it "not fun" and "not easy" by ignoring one essential fact which is that if you really want to get a speed-up you need to break the tasks into something that takes more time than it takes to switch a task! In the case of raytracing for instance, it probably takes more time to trace a single ray than it takes to switch tasks. If you bundled anywhere between 100 to 10,000 rays into a single task you'd probably get a good speedup. Often people have a fetish for some particular way to execute tasks in parallel and think that certain details of their approach are essential whereas the batching is essential to getting a speed-up if not to getting a correct answer.)
I work in Python a lot too, usually in Windows, and I am not in such a hurry to parallelize because the thread support in the language isn't natively strong (the GIL) and the more popular and mature multiprocessing libraries are frequently Unix only or only supported on Unix.
If you want to know how much this effects your program, just start a few threads that produce dummy procedure calls and measure the time it takes to perform them all on your main thread. It will usually be on the order of millions per second. Then compare it with calling the procedures from those threads, but introduce mutexes instead of queues.
The big one of those three when it's just my own projects is retrieving data. I tend not to work on complicated enough projects on my own that would require the other two all that often (and my side projects are usually games with relatively simple graphics).
If I were limited on time and resources, I would focus on improving things that affect the 99% of standard players rather than go and add multithreading and deal with ACID issues.
I have zero clue how game engines like Godot or Unity play into this. How is multithreading in C#?
Disclaimer: I don't like multithreading in C++ but I've never ran into serious problems in Java. This is aside from any other points, just use (and avoiding pitfalls) of multithreading.
It's about making the project possible to complete within a reasonable timescale and on a small or non-existant budget.
It sounds like you've got a specific example in mind, though.
What motivates your question?
Sometimes we do things on only one thread because its faster than doing it on all the threads.