并发编程是一个趋势。多核的出现,使得并发编程越来越重要。这里对于多核处理器来说,如果跑单一线程的程序,那么利用率是很低的。多线程正好成了人们压榨计算机的利器。
多线程是好的,可是,多线程也引入了一些复杂的东西。比如说同步。
记得在学操作系统的时候,就学过类似的东西,对临界资源的访问,PV操作啊什么的。万变不离其宗,多线程编程也同样如此。
java多线程实现是很简单的,大家也都知道synchronized关键字。也知道synchronized是通过加锁来保证同步的。当然,多线程还有很多要考虑的东西,并不是只有同步。
通过对《Java concurrency in practice》的阅读,对多线程的认识更深刻了。
首先,我们要明白的是,多线程是有益的, 在面对他带来的一些问题的时候,更多的是要考虑我们对资源的访问方式,而不是以为使用synchronized就OK了。
总结下,关于多线程的设计,
1,首先考虑的是资源的被访问方式与实时性。
2,尽量考虑多线程环境而不是考虑性能(正确性比性能更重要)
3,语言特性与虚拟机特性等对多线程的影响,正确使用java语言。
4,线程安全
多线程是好的,可是,多线程也引入了一些复杂的东西。比如说同步。
记得在学操作系统的时候,就学过类似的东西,对临界资源的访问,PV操作啊什么的。万变不离其宗,多线程编程也同样如此。
java多线程实现是很简单的,大家也都知道synchronized关键字。也知道synchronized是通过加锁来保证同步的。当然,多线程还有很多要考虑的东西,并不是只有同步。
通过对《Java concurrency in practice》的阅读,对多线程的认识更深刻了。
首先,我们要明白的是,多线程是有益的, 在面对他带来的一些问题的时候,更多的是要考虑我们对资源的访问方式,而不是以为使用synchronized就OK了。
总结下,关于多线程的设计,
1,首先考虑的是资源的被访问方式与实时性。
2,尽量考虑多线程环境而不是考虑性能(正确性比性能更重要)
3,语言特性与虚拟机特性等对多线程的影响,正确使用java语言。
4,线程安全