线程

1线程简要描述

1.1什么是线程?

线程是程序执行的一条路径。程序可以理解成进程。一个进程可以包含多个线程。多线程并发执行可以提高程序效率,同时完成多个任务。

1.2多线程应用场景

QQ多人视频;迅雷多线程下载;电脑屏幕多人共享;服务器同时处理客户端多个请求。

1.3并行和并发的区别

并行:多个任务同时执行。需要多CPU。

并发:多个任务同时发生。处理器一次只能执行一个任务。而这多个任务是轮流执行的,因为轮流的时间间隔非常的短,给人一种多任务同时执行的错觉。

1.4Java程序运行原理

java命令会启动jvm,相当于启动了一个应用程序或者说是线程。该线程会自动启动主线程。然后主线程调用某个类的main方法。

(一个应用程序只能有一个主线程。主线程不可以new,子线程可以new)

1.5JVM启动是多线程吗?

JVM是多线程,因为JVM的启动至少启动了主线程和垃圾回收线程

mian方法在主线程(路径)上执行。

finalize()在子线程(垃圾回收线程)上执行。


1 class A{
2 //
3 //
4 
5 
6 
7 //
8 }
Test

 

package p01;

public class Demo01 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("aaa");
        System.out.println("bbbb");
        System.out.println("ccc");
        //打印线程名称
        System.out.println(Thread.currentThread());
        for(int i = 0 ;i < 2; i++){
            new Student();
            System.gc();    //启动垃圾回收
            //调用这个方法的时候,会启用该类中的finalize()方法。
            
        }
    }

}

class Student{
    
    /*
     * 被垃圾级器回收的时候调用一次,对象从内存中释放的时候,调用一次 
     * 被回收和被释放都会调用。
     */

    @Override
    protected void finalize() throws Throwable {
        System.out.println("学生对象被回收了...");
        //打印线程名称
        System.out.println(Thread.currentThread());
    }
    
}

 

posted @ 2019-02-25 23:06  juna3066  阅读(120)  评论(0编辑  收藏  举报