多线程理论知识
什么是多线程:
* 线程是程序执行的一条路径, 一个进程中可以包含多条线程
* 多线程并发执行可以提高程序的效率, 可以同时完成多项工作
多线程的应用场景
* 红蜘蛛同时共享屏幕给多个电脑
* 迅雷开启多条线程一起下载
* QQ同时和多个人一起视频
* 服务器同时处理多个客户端请求
并行和并发的区别
* 并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也在进行。(需要多核CPU)
* 并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。
* 比如我跟两个网友聊天,左手操作一个电脑跟甲聊,同时右手用另一台电脑跟乙聊天,这就叫并行。
* 如果用一台电脑我先给甲发个消息,然后立刻再给乙发消息,然后再跟甲聊,再跟乙聊。这就叫并发。
多线程原来是并发,底层还是CPU轮流切换任务
Java程序运行原理:
启动Java虚拟机,启动JVM,等于启动了一个应用程序,也就是启动了一个进程 ,这时会自动启动一个“主线程”,然后主线程去调某个类的main方法
Java启动是多线程的,至少需要启动 主线程 和 垃圾回收线程
Object类的finalize()方法就是垃圾回收器。通过System.gc() 也可以调用垃圾回收器
匿名对象就会在内存中产生垃圾
竹杖芒鞋轻胜马,一蓑烟雨任平生。
回首向来萧瑟处,也无风雨也无晴。