多线程是Java开发中的重中之重,其重要性和难度,可见一斑。掌握并精通多线程开发,是每一个程序员的必修之课。哪怕中间的过程很痛苦,只要坚持了,并最终豁然开朗了,都是一种升华。
多线程的优化:合理利用CPU,使用多线程并行取代单线程串行,可以显著提升系统性能。
多线程线程安全问题,本质上就是资源共享问题。如果多线程之间彼此独立,互不影响,这种情况是不存在线程安全问题的。如果多线程之间涉及共享资源,此时处理不当,就存在线程安全问题。举个简单的例子:A、B、C三人各自有一块蛋糕,他们之间不存在竞争关系,不会出现矛盾;A、B、C共享一块蛋糕,则他们之间存在竞争关系,会出现矛盾。
那么,如何解决多线程线程安全问题呢?两种思路:隔离资源;同步共享资源。
一、隔离资源:使用ThreadLocal隔离资源,即将共享资源备份到各自的线程单独处理。
二、同步共享资源:既然是共享资源,就想办法控制,在同一时刻,只有一个线程来操作共享资源。使用的技术有:使用synchronized同步关键字;使用reentrantlock等更加灵活的锁工具;使用CAS无锁思想。
本篇只是引题,后面的篇幅将会详细讲述具体的实践案例。