Допустим, у меня есть многопоточное приложение, которому нужно изменить размер некоторых файлов изображений. Я не хочу, чтобы несколько потоков могли изменять размер одного и того же изображения в одно и то же время и перезаписывать результаты друг друга и повреждать файл, но для обеспечения максимального параллелизма я хочу, чтобы несколько потоков могли изменять размер разных изображений одновременно.
Каков наилучший подход для потока, чтобы получить блокировку для определенного изображения, а не просто синхронизировать целый блок кода?