Make Synchronizer parallel

The synchronizer is pretty slow when uploading multiple files at the same time. It takes around 1 minute to upload a 10MB file then start the next one, but my network usage reaches the peak for only 2~3 seconds, then drops to nearly zero for the rest of one minute. I think the network bandwidth is not the bottleneck.

Is it possible to make the huge loop parallel? let's say uploading 5 or 10 files at the same time.

According to my test, the code between Line 642 and Line 691 takes the most of the time.

I'm using Joplin v2.9.8(prod.) on Android, syncing to Dropbox

The preUploadItems call you see there is what's used to upload multiple items in parallel, but currently it's only supported by Joplin Cloud/Server.

Will this be supported in other sync targets in the future?

If someone can make a pull request, why not, but I'm not sure it can be done with other sync targets, because there might be Joplin-specific behaviour happening on Joplin Server side (I forgot exactly how it's done)