同步的两个前提,如果没有满足这两个条件的话,那就不能称为同步。
1,同步需要两个或者两个以上的线程。
2,多个线程使用的是同一个锁
当碰到线程调度问题,如生产者消费者这样的,多个线程对同一个对象进行读写操作。 一个线程(生产者)修改数据 , 另一个线程(消费者)读取数据 。然后希望生产者每次修改的数据都能被消费者读取,并且不会重复读取。那么就引入线程之间的同步控制逻辑synchronized 。不过同步也是有弊端的:当线程相当多时,因为每个线程都会去判断同步上的锁,这是很耗费资源的,无形中会降低程序的运行效率。不知道这样说对不对 |
|