Java多线程-并发和并行
2015-04-17 10:09
288 查看
1、并发和并行的区别
可由上图形象指出两者的区别:
1)定义:
并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
并行:在操作系统中,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。
来个比喻:并发和并行的区别就是一个人同时吃三个馒头和三个人同时吃三个馒头;
在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent)。而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel)。
2)并发通常指提高运行在单处理器上的程序的性能;
并发是有状态的,“具有可论证的确定性,但是实际上具有不可确定性”;
"并发"在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行。
使用多个线程可以帮助我们在单个处理系统中实现更高的吞吐量,如果一个程序是单线程的,这个处理器在等待一个同步I/O操作完成的时候,他仍然是空闲的。在多线程系统中,当一个线程等待I/O的同时,其他的线程也可以执行。
相关文章推荐
- Java多线程--并发和并行的区别
- java多线程之并行和并发
- [Java多线程]-并发,并行,synchonrized同步的用法
- Java--多线程Thread(实现,并发并行,同步死锁,单例,线程组池)
- Java中关于同步,异步,多线程,多线程同步,并发,并行的一些总结
- Java多线程中的进程,线程,并行,并发
- Java多线程--并发和并行的区别
- Java 多线程编程之一 进程与线程,并发和并行的区别:吃馒头的比喻
- Java 多线程编程之一 进程与线程,并发和并行的区别:吃馒头的比喻
- java多线程之并行和并发
- Java_基础—多线程的引入/并发和并行的区别
- Java并发01:进程、线程、并发、并行、多线程、线程安全、死锁、并发优缺点
- Java基础知识强化之多线程笔记04:并行和并发 区别
- Java 多线程编程之一 进程与线程,并发和并行的区别
- JAVA并发处理经验(四)并行模式与算法6:socket的服务端多线程
- java并发实战第六章(2)非阻塞式线程安全列表与一般List集合多线程情况下的比较
- java多线程并发(一)(线程基础)
- java多线程并发(四)(线程协作)
- Java并发系列-2、多线程的优点
- Windows并发&异步编程(1)JAVA&多线程