java多线程(1)


 java中多线程

一,并行与并发

     并发:(Concurrency)是同时处理很多事情(dealing with lots of things at once)/两个或者多个事件在同一时间段发生。

     并行:(Parallelism)是同时执行很多事情(doing lots of things at once)/两个或者多个事件在同一时刻发送;

二,多进程与多线程

    进程:是程序在计算机上的一次执行活动(应用程序),每一个进程都会有自己的独立的一块内存空间。

  线程:值进程中的一个执行任务(控制单元),一个进程可以同时并发运行多个线层。一个进程中至少会有一个线程,为了提高效率,可以在一个进程中开启多个执行任务,即为多线程。

  使用接口的匿名内部类:

 

  使用类的匿名内部类:

 

 

 

 

对比维度

多进程

多线程

总结

数据共享、同步

数据共享复杂,需要用IPC;数据是分开的,同步简单

因为共享进程数据,数据共享简单,但也是因为这个原因导致同步复杂

各有优势

内存、CPU

占用内存多,切换复杂,CPU利用率低

占用内存少,切换简单,CPU利用率高

线程占优

创建销毁、切换

创建销毁、切换复杂,速度慢

创建销毁、切换简单,速度很快

线程占优

编程、调试

编程简单,调试简单

编程复杂,调试复杂

进程占优

可靠性

进程间不会互相影响

一个线程挂掉将导致整个进程挂掉

进程占优

分布式

适应于多核、多机分布式;如果一台机器不够,扩展到多台机器比较简单

适应于多核分布式

进程占优

猜你喜欢

转载自1049097489.iteye.com/blog/2360509