Java多线程之进程和线程
2015-08-10 19:49
369 查看
在并发编程中有两个基本的概率就是进程和线程。在Java编程中并发编程更多的是关注线程。但是进程也是很重要的。
一个计算机一般会有很多活跃的进程和线程。有一点是没有疑问的在单核系统中,任何时候实际上都是只会有一个一个线程在运行。单核的系统的处理时间是按照OS中的时间片功能来在进程和线程之间共享的。拥有多个处理器或者拥有多核的处理器对于计算机系统来说是越来越普遍的事情。这个极大的提高了并发进程和线程的系统处理能力,但是即使在没有多个处理器或者多核的简单系统中,计算机的并发也是存在的。
进程通常被认为是程序和应用是同步的关系。但是,我们看起来是一个单独的进程其实有可能是多个进程共同作用的结果。为了方便进程之间的通信,大部分的操作系统都是支持IPC(进程间通信),比如:pipe和socket.IPC 不仅仅用于相同系统之间的进程通信还适用于不同系统之间的进程通信。
JVM的大部分实现都是作为一个单独的进程的。而一个Java应用可以通过 ProcessBuilder 对象来创建其他的进程。
线程存在于进程内部--也就是说每个进程至少会有一个线程。线程共享进程的资源,包括内存和打开的文件。这个会通信更加有效但是也会存在问题。
一个计算机一般会有很多活跃的进程和线程。有一点是没有疑问的在单核系统中,任何时候实际上都是只会有一个一个线程在运行。单核的系统的处理时间是按照OS中的时间片功能来在进程和线程之间共享的。拥有多个处理器或者拥有多核的处理器对于计算机系统来说是越来越普遍的事情。这个极大的提高了并发进程和线程的系统处理能力,但是即使在没有多个处理器或者多核的简单系统中,计算机的并发也是存在的。
1.进程
每个进程都有自己的运行环境。一个进程一般会有一个完整的私有的基本的资源集,特别的是每个进程都有自己的内存空间。进程通常被认为是程序和应用是同步的关系。但是,我们看起来是一个单独的进程其实有可能是多个进程共同作用的结果。为了方便进程之间的通信,大部分的操作系统都是支持IPC(进程间通信),比如:pipe和socket.IPC 不仅仅用于相同系统之间的进程通信还适用于不同系统之间的进程通信。
JVM的大部分实现都是作为一个单独的进程的。而一个Java应用可以通过 ProcessBuilder 对象来创建其他的进程。
2.线程
线程被称为轻量级的进程。进程和线程都提供了运行环境,但是创建一个线程比创建一个进程耗费更少的资源。线程存在于进程内部--也就是说每个进程至少会有一个线程。线程共享进程的资源,包括内存和打开的文件。这个会通信更加有效但是也会存在问题。
相关文章推荐
- Java中方法重载与重写的区别
- java大数
- 基于注解的SpringMVC整合JPA
- 读取jar包中资源文件的两种方法
- Java Socket编程
- Spring异步任务处理,@Async的配置和使用
- JAVA IO流总结
- Java中的封装
- Java String在内存中的情况
- java实现从文件中读取信息保存在Map中,修改Map中的值,将Map更新到文件中
- Spring-Data-JPA学习
- Java优秀视频
- 自己写的java程序如何放在YARN环境下运行
- java编程acm基础
- Eclipse中项目java文件打不开,点击.java文件报错
- Java字符串题目--去除重复字符并排序
- 深入理解java异常处理机制
- 智渔课堂官方免费教程十七:Java面向对象之接口
- I学霸官方免费教程十七:Java面向对象之接口
- 常见的一些eclipse开发常用的快捷键