1. A method for enabling applications to flexibly distribute connections in a multiprocessing system, the method comprising: maintaining a plurality of connection data structures, each data structure associated with a network thread executed in the multiprocessing system, each data structure storing connections queued to a network thread; receiving an indication that an application wants to migrate an established network connection to a new network context that queues connections processed by a network thread; halting processing of data packets arriving on the connection until the connection is migrated without putting the connection in an inconsistent state; and migrating the connection to the new network thread.