methods and apparatus for a cooperative processing of a task in a multi - threaded computing system are disclosed . in one aspect of the invention , a first thread is arranged to receive a task and only partially process the task . during its processing , the first thread stores processing information that is relevant to future processing in a packet that is associated with the task . upon completing its processing , the first thread designates a second thread as the owner of the packet . after the second thread obtains ownership of the packet it then further processes the task based at least in part upon the processing information stored in the packet by the first thread . with the described arrangement no synchronization primitives are required for the threads to cooperate in processing the task .