本帖最后由 李文富 于 2012-5-19 17:35 编辑
黄奕豪 发表于 2012-5-19 17:11
你说它是用来锁共享资源的,那不是synchronized关键字做的事么,那传个锁对象给它干嘛啊? ...
那你试想任意代码块下涉及到资源的操作,一个线程在运行的过程中可能在任意一个语句停下,另一线程抢占cpu去执行读写操作,这是不安全的。这过程中还可能出现死锁,所以设计的时候应该将锁优先级设计的上帝Object也行,person也行,甚至类名.class文件对象要高。
补充一点:锁的出现的确会大大降低程序效率,的确应该做到正确的使用锁,对那个操作要明确必须上锁,在并发前提下保证数据的正确性。如果随意上锁还不如使用单线程来做。锁在多线程下是必须要的。如果想深入理解 查看下 汤子瀛《操作系统原理》那里有锁机制的详细解述 |