创建了多个线程时,就存在多个线程同时访问一个共享的资源的情况,
在这种情况下,就需要我们用到线程同步,线程同步可以防止数据
(共享资源)的损坏。
然而我们在设计应用程序还是要尽量避免使用线程同步,
因为线程同步会产生一些问题:
1. 它的使用比较繁琐。因为我们要用额外的代码把多个线程同时访问的数据
包围起来,并获取和释放一个线程同步锁,如果我们在一个代码块忘记获取锁
,就有可能造成数据损坏。
2. 使用线程同步会影响性能,获取和释放一个锁肯定是需要时间的吧,
因为我们在决定哪个线程先获取锁时候, CPU必须进行协调,进行这些额
外的工作就会对性能造成影响
3. 因为线程同步一次只允许一个线程访问资源,这样就会阻塞线程,
阻塞线程会造成更多的线程被创建,这样CPU就有可能要调度更多的线程,
同样也对性能造成了影响。
所以在实际的设计中还是要尽量避免使用线程同步,因此我们要避免使用
一些共享数据,例如静态字段。
在这种情况下,就需要我们用到线程同步,线程同步可以防止数据
(共享资源)的损坏。
然而我们在设计应用程序还是要尽量避免使用线程同步,
因为线程同步会产生一些问题:
1. 它的使用比较繁琐。因为我们要用额外的代码把多个线程同时访问的数据
包围起来,并获取和释放一个线程同步锁,如果我们在一个代码块忘记获取锁
,就有可能造成数据损坏。
2. 使用线程同步会影响性能,获取和释放一个锁肯定是需要时间的吧,
因为我们在决定哪个线程先获取锁时候, CPU必须进行协调,进行这些额
外的工作就会对性能造成影响
3. 因为线程同步一次只允许一个线程访问资源,这样就会阻塞线程,
阻塞线程会造成更多的线程被创建,这样CPU就有可能要调度更多的线程,
同样也对性能造成了影响。
所以在实际的设计中还是要尽量避免使用线程同步,因此我们要避免使用
一些共享数据,例如静态字段。