Java高级篇之进程

本文介绍了计算机提高处理效能的手段,如摩尔定律和阿姆达尔定律,并深入讲解了进程和线程的概念。Java中,一个应用程序就是一个进程,而线程是进程内的执行单元。文章详细阐述了Java中线程的创建,包括继承Thread类和实现Runnable接口两种方式,以及线程的执行原理和特点。
摘要由CSDN通过智能技术生成

一、提高计算机处理效能和速度的主要手段

1、计算机界摩尔定律,由intel公司的一位创始人,现代计算机的硬件在18-24个月在同一价格的基础芯片的集成度会提高一倍。但是硬件的发展不是无限有瓶颈,硬件由金属等物资构成,特质的最小组成单元是原子。电路单元再小不能小过原子。到目前为止该定律仍然是主要定律。
2、阿姆达尔定律,由IBM公司的首席架构师,如果一个系统中存在串行执行的部件,它一定会影响到速度的提升,要想提高计算机的执行速度要求核心部件的加速比要尽量提高。
3、基于第二个定律,各种主流操作系统或开发平台(语言),包括计算机硬件在提升速度这一块都做了改变,硬件方面出现了多核CPU,操作系统的内核也都实现了对进程或线程的支持,从语言上来看,大多数语言也提供了对进程和线程的支持。
4、并行和并发,以后主要提并发不能并行,并发就是在同一时间有多个程序同时执行,或者在同一时间有多个程序在操作一份资源。

二、什么进程

1、进程就是计算机中正在执行的程序。因此进程需要占用计算机的资源及cpu的执行时间。
2、所有进程都由操作系统来分配内存及cpu的执行时间,操作系统是进程的执行基础,主要体现在启动和关闭进程,为它分配资源,在多进程之间调度执行。

3、现代的计算机在启动后,同时会有多个进程在并发的执行。
4、进程具有独立性,不同的进程对应不同的应用程序,实现进程之间的通讯比较困难,现在一般都利用消息队列程序来实现通讯。
5、操作系统给进程一旦分配了内存空间,总的可用空间一般不再变化。
6、当多进程同步执行时,操作系统会为它们分配cpu的时间片,虽然时间片不同,但是因为时间片足够短,所以感觉所有的进程都在同时执行。
在这里插入图片描述

三、线程

 线程是进程中的一条执行线索(一个执行单元)。

四、多线程

一个java应用程序就是一个进程,也就是jvm一启动就启动了一个进程,最简单的HelloWorld程序只有一个main方法,main方法本身就是一个执行单元,该方法是由jvm中所生成的一个名称为main的主线程来调用执行的。因此,一般认为main方法就归属于主线程或者说main方法是由主线程来调用的方法。
任何一个java应用程序只有启动起来,就存在着多个线程在执行。因此java应用程序就是多线程。那么多线程也是java语言的一个根本特征。
1、线程共享进程的资源,而不能跨进程获取资源
2、多个线程同属一个进程,因此它们可以共享内存,线程之间的通讯很方便
3、多个线程并发执行可以让进程具有同步处理多个问题的能力,多个用户从服务器下载文件,java进程此时会为每个用户创建一个线程,每个线程都独立的与用户进行通讯,用户的感受就象服务器为他一个服务。其实不然,cpu依靠为各个线程分配时间片,依然是分时操作。线程的执行也需要cpu分配时间片。
4、线程的底层实现原理,现代的主流语言在该问题的解决方案有三种,一是内核态,也就是程序创建的线程其实都是操作系统的内核线程(java 1.2 至今) ,这种创建和管理线程的形态的最大好处在于可以极大的利用操作系统的性能及任务调度的超能力。二、用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值