One should probably try to follow the WebWorkers API as far as it makes sense on the server.
However, WebWorkers cannot share state, they can only communicate via messages, so if traditional threads are desired they are not acceptable.
And traditional threads are generally considered deprecated in modern language design. The WebWorkers design was intentional.
- Synchronet's load() method supports creating background tasks/threads and implements a bidirectional Queue object which may be used to communicate with the concurrently executing child script: http://synchro.net/docs/jsobjs.html#Queue
A possible alternative is a stronger eventing dispatch mechansim. Actionscript did lots of good work in this area. Here is a set of event, listener and timer classes from Ejscript. These can be retro fitted to interpreters for which threads and threading are problematic or impossible.
- JSAPI threading https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference#Threading
- NSPR threads https://developer.mozilla.org/en/NSPR_API_Reference#Threads
- NSPR in general https://developer.mozilla.org/en/NSPR_API_Reference