Concurrency Problem:- You are given a bucket of capacity N in which tokens are added at the rate of 1 per second. If overflow occurs, the tokens are dropped from the bucket. There are several threads, that need 1 token to complete their execution. So, whenever they are invoked, they capture one token from the bucket (which is removed) and continue their execution. Implement the problem, and synchronize access to the shared bucket.