In ArrayBlockingQueue, why copy final member field into local final variable? In ArrayBlockingQueue, why copy final member field into local final variable? multithreading multithreading