# README
gopool
Package gopool implements a concurrent work processing model. It is a similar to thread pools in other languages, but it uses goroutines and channels. A pool is formed wherein several goroutines get tasks from a channel. Various sources can be used to schedule tasks and given some coordination workgroups on various systems can work from the same source.
# Functions
New creates a new GoPool with the given number of goroutines.
NewPriorityQueue creates a new PriorityQueue.
NewPriorityTask returns a PriorityTask with the given task and priority.
NewSource creates a managed source using the given Sourcer and starts a goroutine that synchronizes access to the given Interface.
# Variables
ErrStopped is used to signal a goroutine that it should stop.
# Structs
GoPool is a group of goroutines that work on Tasks.
PriorityQueue is an implementation of Interface using a priority queue.
# Interfaces
PriorityTask is a Task that has a priority.
Sourcer is the interface that allows a type to be run as a source that communicates approptiately with a gopool.
Task is a some type of work that the gopool should perform.