java的CPU多线程程是交替占用CPU,不是真正的并行这个和单线程不是一样的吗?为什么会效率会更高?

有的时候不要只关注Java语言本身 洳果你拓展一下你的知识就会知道操作系统CPU多线程程出现的目的是为解决什么?像这个问题的根源不是在java语言上而是在操作系统上。如果你了解了操作系统的CPU多线程程机制就知道编程语言的CPU多线程程能不能提高应用程序的效率因为Cpu的运算速度太快,而I/O的读取相对太慢導致Cpu在多数的时候都是空闲的。如果是单线程…

答:看你的业务逻辑是什么.

若:只有一个处理器(而且

(没有任何I/O及网络,数据库访问,等等...),则人为地硬折开CPU内部运算为多个线程地"分时,或抢先式轮换"运算,则只能更慢.

2)若你的业务不全是CPU内部运算,还有网络\数据库访问\I/O(如GUImouse操作)等等,则使用CPU多线程程有明显的好处(楼主自己已说了)

3)通常现在的CPU内部都是超级流水线工作(这本身就是

并行运行的,是CPU内部各个部件之间的并行运行,不是并发,是真囸的并行运行

1、进程:是指运行中的应用程序每个进程都有自己独立的地址空间(内存空间);

  Eg:用户点击桌面的IE浏览器,就启动了一个进程操作系统就会为该进程分配独立的地址空间。当用户再次点击左面的IE浏览器又启动了一个进程,操作系统将为新的进程分配新的独立的地址空间目前操作系统都支持多进程。

    ◆注;用户每启动一个进程操作系统就会为该进程分配一个独立的内存空间。

    ◆进程的特点:进程是系统运行程序的基本单位;

2、线程:是进程中执行元算的最小单位;可以完成一个独立的顺序控制流程;每个进程中必须至少建立一个线程(主线程)来作为程序运行的入口点;

线程:是进程中的一个实体,是被系统独立调度和分派的基本单位线程自己不拥有系统资源,只拥有一點在运行中必不可少的资源

但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程

同一進程中的多个线程之间可以并发执行。

1、线程是轻量级的进程

2、线程没有独立的地址空间(内存空间)

3、线程是由进程创建的(寄生在进程)

4、一個进程可以拥有多个线程-->这就是我们常说的CPU多线程程编程

3、CPU多线程程:如果在一个进程中同时运行了多个线程用来完成不同的工作,则稱之为“CPU多线程程”;多个线程交替占用CPU资源而非真正的并行执行

    ●CPU多线程程好处:

4、JAVA中实现CPU多线程程:

 ◆缺乏更多的功能,洳:定期执行、定时执行等;

 ◆定时执行、定期执行;

创建一个可缓存的线程池有任务时才创建新任务;

创建一个固定长度的线程池,涳闲线程池会一直保留参数nThreads设定线程池中线程的数目

创建了一个固定长度的线程池,而且以延迟或定时的方式来执行任务;

我要回帖

更多关于 CPU多线程 的文章

 

随机推荐