Application doamin is a logical partition within the process which is isolated and hosts .net assemblies inside it.
The single process can have multiple application domains, and in turn each application domain has multiple threads inside it, but the thread not confined to the application domain as it is free to cross the app. domain boundries to another domain provided that the thread execution can be done only in a specific domain at a time.
The advantage of application domains that if it fails, the remaning loaded applications in the other domains will not fail.
The application domain is managed and created basically by CLR.