Avoid global objects at all costs, don't be tempted to start using static classes, variables and methods either to mimic the use of global objects in code. Read about the perils of static classes, methods and variables here . Read about the code smell static cling here .
Spend some time acquainting yourself with Object Orientated Programming best practices and Code smells. Global variables and objects are a code smell.
What you need to think about is designing services in your application with Dependency Injection in mind so that you can manage the lifetime of these services effectively. Typically you would need to develop your application to be loosely coupled so that you can utilise Dependency Injection and a Dependency Injection Container to manage the lifetime of the services the application provides. This would normally involve a class with a method call called the composition root that composes all the objects in the application.
The Dependency Injection Container if you choose to use one can be configured to deal with all the dependencies in the application and manage their lifetimes. Example Lifetime scopes are Singleton(Return a single instance of an object every time it needs to be used), Transient and others that take into consideration concurrency. If a Dependency Injection Container is too much complexity for your application you can compose and manage object lifecycles yourself in code.
There should be no need for global variables or objects in an Object Orientated Application. To save you time and effort start thinking regarding the best practices of OOP from now on in the way you write and structure code:
+SOLID principles +Clean Code and Architecture - Robert C Martin +Acquaint yourself with and learn about Code Smells and how to avoid them.