Java:关于多线程与多核,如何将多核都利用上呢?
你自己写个多线程的程序跑起来,把任务管理器打开,打开“性能”选项卡,观察你就发现了,其实不管你你的是4核,8核,1024核,基本都是在一个格子里有动作的,跟理论上几个线程就在几个核里跑不一致的,操作系统自身的设计导致的。核虽然多,县城虽然多,但是还没有真正设计成几个线程就在几个核里跑的算法模式。至于怎么都利用上不是你说了算,os说了算。别想太多。
java的web开发需要用多线程吗?
需要多线程的
最典型的应用比如tomcat,tomcat内部采用的就是多线程,上百个客户端访问同一个web应用,tomcat接入后都是把后续的处理扔给一个新的线程来处理,这个新的线程最后调用到我们的servlet程序,比如doGet或者doPost方法。如果不采用多线程机制,上百个人同时访问一个web应用的时候,tomcat就得排队串行处理了,那样客户端根本是无法忍受那种访问速度的。还有就是需要异步处理的时候,需要使用多线程。比如task a和task b要并行处理,单个线程只能串行处理,先做完task a然后再做task b。如果想要多个task同时执行的话,就必须为每个task分配一个线程,然后通过java虚拟机的线程调度,来同时执行多个任务。比如你的CPU是多核心的话,就可以让一个CPU执行一个线程。如果只有一个CPU的话,底层是按照分时复用的原则,各个线程按照时间片来获得CPU资源。
不过多线程
求各位大神,Java多线程看哪本书好?
《Java并发编程实战》
作者:盖茨(Brian Goetz)
出版社:机械工业出版社
本书深入浅出地介绍了Java线程和并发,是一本的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,很后介绍了一些不错主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。
书不在多,一本就行!本书是Java进阶的必看书目之一,作者Brian Goetz有20多年的软件咨询行业经验,并著有至少75篇关于Java开发的文章。个人感觉本书读起来章节安排得还行,理论由浅入深,涉及的案例也比较典型。相信仔细研读可以带来不小的收获~希望能帮助到题主。
推荐java并发编程实战这本书。
这本书从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则。
如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容。
最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。
总之,书中介绍的比较全,原理解析比较透彻。希望我的回答能帮到你。
一个五年经验的java工作经验深刻推荐
第一本,java并发编程实践,这本书不仅解释了它们如何工作,如何使用,还阐释了创造它们的原因和背后的设计模式
第二本,深入理解java虚拟机,JVM高级特性和最佳实践 ,这本书围绕内存管理,执行子系统程序编译和优化,高效并发等核心对jvm进行了全面深入的分析
希望对您有用,一起加油!
有本书叫《Java线程》,O'Reilly出版社的。
O'Reilly出的书口碑好像还不错,其java系列的书有好多都是很具体,好像还有像一本只讲JMS的,反正就是类似的书。想看某个分支具体讲解的书去O'Reilly翻翻。