Learn golang, use channels, not worry about threading. Or use actor library in java. Threading is not something you do out of box, you end up using threadpools, the only hard part is shared state. Just buy concurrency in java book if you need help with shared state.
Here is a small list that I think could help: 1. Take a bunch of files and try uploading them to S3 in bulk in parallel. Profile, optimize and repeat. Bonus if you learn about Zero copy 2. Write a hashmap from scratch and simulate simultaneous reads and writes. Profile, optimize, repeat. Think of sharding it internally, think of map resizing etc. 3. Write a web server from scratch that supports simple get operations. Try to use what you built in step 1 to overwhelm it. Now use thread pools etc to figure out how to speed it up.
Try to use as much raw java features as possible. Good luck.
There is a game on Steam called "Human Resource Machine", that effectively teaches you how to write Assembly (in a fun way). The sequel "Seven Billion Humans" is all about concurrency and is an excellent way to start thinking about the problems you encounter in concurrent execution situations.