Difference between LP optimization and GLPK optimization

I've seen two different optimizers being used, but both with a different solver. One uses PULP_CBC_CMD and the other uses GLPKSolverMIP() can someone explain to me the difference in these two optimization strategies?

Both of these optimizers are using to optimize daily fantasy sports lineups. It's basically a knapsack optimization problem. You are give X amount of roster spots and a defined salary and must fit players from each position into their corresponding roster spot while staying under the required salary.