Recall that we used arrays for the thread stacks in the previous chapter. Although this approach has the advantage of simplicity, it is frequently undesirable and is quite inflexible. This chapter focuses on two ThreadX memory management resources that provide a good deal of flexibility: memory byte pools and memory block pools.