I have been informed that "static functions" must not be used generously in this context and they should be applied, a "locking" mechanism since without lock, multiple threads of a single instance of program or multiple instances of a program, both can behave unexpectedly. Is it true? Let's break it piece by piece. What is a static class? A static class is basically the same as a non-static class, but there is one difference: a static class cannot be instantiated.