• 线程


    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());
        }
        
    }
  • 相关阅读:
    input 蓝边
    4.【ac自动机】模式串匹配
    3.【二叉树】最近公共祖先
    2.【动态规划】最长回文子串
    1. 【线段树】
    DbUtil
    oauth2
    cas
    Spring-security-web
    JSON Web Tokens
  • 原文地址:https://www.cnblogs.com/juna3066/p/10434523.html
Copyright © 2020-2023  润新知