is locking necessary for Dictionary lookup? is locking necessary for Dictionary lookup? multithreading multithreading