Fairness is an important concept in design and implementation of distributed systems. At the specification level, fairness usually serves as an assumption for proving liveness. At implementation level, the question becomes how to implement the underlying fairness which is assumed to be true at the specification level. In this paper, we study four types of fairness, the so-called w-fairness (weak fairness), s-fairness (strong fairness), ufairness and su-fairness, in the context of the design of N-party ization algorithms. Within an abstract model for distributed systems, we formally introduce the four fairness concepts. We formally present, in the form of extended finite state machines, several distributed Nparty synchronization algorithms which satisfy different fairness es. The algorithms given in this paper are abstract in a sense that not optimized. The abstraction makes the construction of the algorithms and their proof of correctness easier.