A global picklist is a restricted picklist by definition. When you create a global picklist, the list of values you specify is protected. Only you can add or edit values.
When you create a custom picklist field and base it on the global picklist, its list of values is inherited from the global picklist. Users can’t change the values because they’re defined as a picklist value set. They also can’t add values through the API to the value set or to picklist fields that use it.
Conveniently create a global picklist from Setup. Then create custom picklist fields the way you always have. But now you have the option of using a global value set for as many custom picklists as you want.
Specify the picklist value set when you create a global picklist. If you edit the global picklist definition, all of the picklist fields that use its picklist value set are also updated.
Say you want a picklist field called “Rating” on Accounts and Opportunities, with values Hot, Warm, and Cool. Instead of maintaining those picklist values separately on two different objects, create a picklist value set with your values.