Most Group communication services are event driven with multiple events occurring concurrently at a group member during execution. There are two common techniques--- a thread based and an event based ---that have been used to handle these concurrent events. A thread-based technique uses multiple concurrent threads of execution in a program, while an event-based technique uses a single thread of control. In this paper, we evaluate these two techniques in the context of implementing a group communication service. This evaluation is based on a comparison of the performance measured from a thread-based implementation and an event-based implementation of a group communication service, and our experience in using these techniques to implement group communication services in the past. Our conclusion is that an event-based implementation is preferable to a thread-based implementation of a group communication service. An event-based implementation provides better performance, scales better in terms of number of events processed per unit time, and results in simpler, more manageable and portable code.