[Release]Arena 6 Rooms PVP SS & FB Only, For Public Sources [5530+]

10/22/2013 18:26 GameHackerPM#16
Quote:
Originally Posted by Fang View Post
That's actually quite the misconception. A source that's highly multithreaded will run very slowly because all threads (assuming that they're processing client data) will be requesting that they be processed at the same time. It won't scale well because the computer can only handle a certain amount of threads at a time, given the amount of processors you have and the technology in use. I have 8 logical cores, so I try to keep my server under 16 threads. Multithreading is good, but you should keep your thread count as small as possible. Synchronizing threads is a problem as well, yes - for threads that change client data.
Good info, but is there anyway or another thing can do what threads do but better than them?! :)
10/22/2013 22:21 Spirited#17
Quote:
Originally Posted by GameHacker-PM- View Post
Good info, but is there anyway or another thing can do what threads do but better than them?! :)
It depends on the architecture of your server. If your server uses an asynchronous socket system, then it already tries to manage clients using a number of worker threads that maximizes efficiency (in theory). As far as threads unique to the client, I try to completely avoid that when I can program my server, and make threads that manage the data pools instead. For example, I have a thread for characters, a thread for maps / monsters, a thread for server maintenance / events, etc.
10/23/2013 06:41 Spirited#18
Quote:
Originally Posted by Y u k i View Post
!!!Async!!! Sockets use I/O Threads, not worker threads (usually)... the keyword is async. I like to have a Thread for all the above + one for the acctual packethandler, you (GameHacker) might want to consider that carefully as it adds up to the responsiveness alot but easily fucks up the entire codebase. I dont know how your source (messi?) will handle that of if it even does.
Asynchronous sockets are "async sockets", and most implementations use a threading model called IO Completion Ports for distributing work into worker threads to process asynchronous requests. Please stop trying to wrongfully correct me. Also, having one for the packet handler, what exactly do you mean by that? I hope you don't mean processing packets on a single thread while using an asynchronous socket system.