Java学习25 2020-03-10

内容

1.进程
2.多进程的作用
3.线程
4.多线程作用
5.java程序的运行原理
6.Java中实现多线程的第一种方式
7.线程生命周期示意图

一.进程

一个进程对应一个应用程序。比如:在windows操作系统启动Word就表示启动了一个进程。现代的计算机都是支持多进程的,在同一个操作系统中,可以同时启动多个进程。

二.多进程的作用

单进程计算机同一时间只能做一件事情。
对于单核计算机来讲,在同一个时间点上,多个进程不能同时运行。因为计算机的CPU只能在某个时间点上做一件事。由于计算机在多个进程之间频繁切换的切换速度极高,人们就会感觉多个进程在同时运行
多进程作用不是为了提高执行速度,而是提高CPU的使用率

注意:进程和进程之间的内存是独立的

三.线程

线程是一个进程中的执行场景一个进程可以启动多个线程。比如百度服务器可以供多人同时访问,比如一款网络游戏可以多人同时玩(个人理解)。

四,多线程的作用

线进程不是为了提高执行速度,而是提高应用程序的使用率

注意:线程和线程共享“堆内存和方法区内存”栈内存是独立的,一个线程一个栈。

五.Java程序的运行原理

java命令会启动java虚拟机,启动JVM,等于启动了一个应用程序,表示启动了一个进程,该进程会自动启动一个“主线程”,然后主线程去调用某个类的main方法,所以main方法运行在主线程中。

六.java中实现多线程的第一种方式

1.步骤

定义线程
1.继承java.lang.Thread
2.重写run方法创建线程启动线程

2.使用示例
public class 测试程序   {                                                                                                             
                                                                                                                        
    public static void main(String[] args) throws Exception {
   
        //1.创建一个线程
        Thread t = new Processor();
        
        //启动
        t.start();//这段代码执行瞬间结束,用来告诉JVM再分配一个新的栈给t线程
                  //run不需要程序员手动调用,系统线程启动之后自动调用run方法
        //t.run();//这是普通方法调用,这样做没有分配新的栈,程序只有一个线程,run方法结束之后,下面的程序才能
                //同时进行,而上面的方式可以使得run和下面的程序同时执行
        
        //一段在主线程中运行的代码
        for(int i = 0;i < 10;i++) {
            System.out.println("main-->" + i);
        }
        
        //有了多线程之后,main方法结束只是主线程栈中没有栈帧了
        //但是其他线程或者其他栈中可能还有栈帧
        //也就是说,main方法结束,程序可能还在运行
    
    }

      //定义一个线程
       static class Processor extends Thread//注意这里要加一个static。因为静态方法不能直接访问非静态成员。属于内部类调用问题将内部类改为static,不能从上下文进行引用


       {
            //重写run方法
            public void run() {
                for(int i = 0;i < 30;i++) {
                    System.out.println("run--" + i);
                }
            }
       }
   
    
}
3.程序执行原理
程序执行原理

七.线程生命周期示意图

线程的生命周期
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值