Methods and arrangements are provided for use in multiple user computing
environments. These methods and arrangements can be configured to allow
for a plurality of separate and concurrent desktops and workspaces within
the shared computing environment. One method includes creating a separate
desktop thread for each user that is authenticated during a logon
process, creating a separate desktop associated with each desktop thread,
and maintaining a list of desktop threads that are created. In this
manner, several users can be logged on simultaneously. In certain
implementations, the method further includes establishing a separate user
environment associated with each desktop and launching a separate user
shell associated with each desktop. The list of desktop threads allows
for selective and/or automatic switching from a first desktop to a second
desktop without terminating a desktop thread associated with the first
desktop. The methods and arrangements are also applicable to remote
process logon and switching.