1. A computer-implemented method for a multi-threaded process to access an un-shareable resource, the method comprising: creating, using a computing device and at compile time of the multi-threaded process, a binder for the multi-threaded process to access the un-shareable resource such that the binder includes an interface; linking, using the computing device, the interface of the binder to the un-shareable resource at runtime; at the interface of the binder, receiving, using the computing device, a plurality of requests from a plurality of threads of the multi-threaded process to access the un-shareable resource, wherein the plurality of requests from the plurality of threads are made according to an application binary interface of the un-shareable resource; selecting, using the computing device, a first thread from the plurality of threads to service using the binder; providing, using the computing device, one or more input arguments of the first thread to the un-shareable resource using a function call; preventing, using the computing device, the plurality of threads besides the first thread from accessing the un-shareable resource when the first thread is accessing the un-shareable resource; and providing, using the computing device, a second application binary interface that is identical to the application binary interface of the un-shareable resource, wherein the plurality of requests from the plurality of threads are received by the second application binary interface.