Typically, a device in an ad hoc wireless network has a tunable radio allowing it to listen or transmit on one channel at a time. To ensure maximum connectivity, all devices tune their radio to the same channel. However, as node density increases, the interference worsens, resulting in lower throughput per device. Some of the interference is unnecessary. Modern radios can often switch channels (i.e., tune to different frequencies). Given multiple available channels, devices in a neighborhood can potentially transmit on different channels simultaneously to increase the network throughput. This dissertation explores whether it is possible to exploit the existence of multiple channels and the ability of radios to switch between them quickly to increase network throughput without a central coordinator. The work starts by showing that if a radio can modulate the entire available spectrum, splitting it into smaller channels does not increase capacity. However, since there is always an engineering limit as to how wide a channel can be, multi-channel MAC should be viewed as an orthogonal and complementary way to increase throughput when more spectrum is available, without hardware changes. Existing multi-channel MAC protocols were classified into four categories based on their operation principle: Dedicated Control Channel, Split-phase, Common Hopping, and Parallel Rendezvous. These four approaches were compared through both analysis and simulation. All approaches apart from Parallel Rendezvous suffer from control channel congestion when channels are numerous and communication tend to be short. Using the best performing approach, Parallel Rendezvous, as a skeleton, we designed our own multi-channel MAC protocol called McMAC. To prove that McMAC is practical and to discover any hidden issue, we implemented the salient features of McMAC on an experimental hardware platform and evaluated its performance.