WithTimeout — duration from now. WithDeadline — absolute time.
WithTimeout:
1// 5 seconds from now2ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)3defer cancel()
WithDeadline:
1// Deadline at specific time2deadline := time.Now().Add(5 * time.Second)3ctx, cancel := context.WithDeadline(context.Background(), deadline)4defer cancel()
Key difference:
Use cases: