view the rest of the comments
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
-
No low-effort posts. This is subjective and will largely be determined by the community member reports.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!

Programming with threads is much harder than using a single thread.
First your workload has to be split up in such a way that it can be distributed. That's not always possible.
The you gotta insert "synchronisation" to avoid a whole class of concurrency issues.
Hence programmers always default to a single thread unless really needed.
Of course - I get that. I'm a programmer myself.
But it does have to be said that there's little excuse for not doing it anymore for heavy applications, especially games. The tools/frameworks/engines have vastly improved, and people know (at least roughly) ahead of time what work is going to slog the CPU, especially in the case of a AAA studio.
Note: I'm only referring to relatively modern games here - anything that's older than when multithread really took off gets an automatic pass - it's not reasonable to expect someone to cater for a situation that doesn't exist yet.
Tend to agree that these massive studios should have the resources.
.... Wut. You chose one of the best examples of where multi-threaded workloads are extremely difficult and often impractical as your example of where it should definitely be used...? 🤦
Games are where it's the most difficult, nevermind enterprise workloads that can be multi-threaded on paper, while games can often not even make that work in theory. Game workloads are incredibly, almost insurmountably, difficult to multi-threaded for most teams and studios.
Not just from a technical standpoint but from a practical standpoint as well as you are significantly increasing the surface area for software defects, full of pitfalls and gotchas. Sure you can multi-thread your workload but now it actually runs slower than it would have if you never did this at all due to increased resource usage as a result of synchronization...etc
Games like factorio are rarities, where the developers had both a small game and scope, and all the time and resources they needed to produce multi-threaded solutions to their workloads. Engines like unity have ECS, which has limitations of use and comes with extra asterisks. But outside that and a few other examples actual multi-threading is a massive undertakings that may actually mean your Game cannot be delivered.
Difficult, yes. Impractical? Absolutely not, at least with some planning ahead. It's not trivial (and I never said it was) but it's getting both easier and more important every year.
Programmers mostly don't know how to make multithread programs.
I’m programmer myself and I understand that it’s not simple even though you can use blocking or protected collections.
I’m referring to a situation where the programmer made a function multithreaded but hard coded creating only 4 threads “to fully utilize a 4 core cpu”
Multithreading in games is much more difficult because you not only have to make sure, everything is synchronized, but also that everything finishes in time. It's a bit like a RTOS in that regard. Using a known and fixed amount of threads can be a sane choice.
Yup, glad someone else understands that one.
Not much of a game developer myself- but, yea, I understand the challenges of multithreading, especially around the main loop.
If you want to learn something interesting, check out a few videos on the PS2 architecture, and the challenges around optimizing games for it. Its, very interesting.
https://www.youtube.com/watch?v=IRv_xKS4q7o
Oh, and the PS3 wasn't any better. (Worse in ways..)
https://www.youtube.com/watch?v=zW3XawAsaeU
Here is an alternative Piped link(s): https://piped.video/watch?v=IRv_xKS4q7o
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I'm open-source, check me out at GitHub.
Not always true. Not for all games. And multiplayer games already have multithreading in some way.