java线程和进程

    在并发程序中,有两个基本概念:线程和进程。在java中,并发程序大多数处理进程。但是,进程也是非常重要的。

    一个计算机系统通常有很多活动的进程和线程。即使是单执行器的系统也是,并且因此在任何时刻只有一个线程在执行。单核的处理时间是通过操作系统叫做时间分片的特性在进程和线程之间共享的。

进程

一个进程有一个自我包含的执行环境。一个进程通常有一个完全的,私有的运行时资源集。尤其,每一个进程有自己的内存空间。(这个是不是太重要的,这也是需要同步的原因

进程通常被看做程序的同义词,然后,用户在一个单独应用看到的可能实际上是一系列合作的进程。为了促进进程间的通信,大多数操作系统支持Inter Process Communication资源,比如管道或者sockets。IPC不仅用来在同一个系统间的通信,也可以用来不同的系统。


    大多数java虚拟机的实现在单进程执行。一个java应用可以使用ProcessBuilder来创建额外的进程。但是多进程的应用不在这里讨论。

线程

线程有时候叫做轻量级进程。进程和线程都提供一个执行环境,但是创建一个新线程比创建新进程要求更少的资源。

进程存在于线程内。每一个进程至少有一个。线程分享进程的资源,包括内存和打开的文件。这变的高效,但是潜在的问题是通信。 并发就是因为这个

多线程执行是java平台的必须特性。每一个应用至少有一个线程,或者多个,如果包括内存管理和信号处理的信号进程。但是从编程的角度,我们从一个进程开始,就是main Thread。这个进程有创建其他进程的能力,下面会展示。


个人思考:

对于java的程序,所有的都是从main Thread开始,那么安卓,有一个启动的Activity,这个最明显不过了,还有就是像我们一般的java代码,肯定会有一个main,作为开始,

那么spring的开始是哪个呢?应该也是差不多,spring使用了ContextLoaderListener,和tomcat这些web容器在一起整合,监听web容器的启动,然后启动spring。如果不用web容器呢?只能我们自己手动了:

ClassPathResource resource = new ClassPathResource("bean.xml");
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(resource);

像这样手动启动了吧。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值