码迷,mamicode.com
首页 > 编程语言 > 详细

Java 多线程 01

时间:2020-04-17 20:13:01      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:cpu   main   string   代码   执行   str   system   ring   另一个   

多线程· Runnable 和 Thread

多线程的引入

* A:什么是线程
  * 线程是程序执行的一条路径,一个进程中可以包含多条线程
  * 多线程并发执行可以提高程序的效率,可以同时完成多项工作

* B:多线程的应用场景
  * 红蜘蛛同时共享屏幕给多个电脑
  * 迅雷开启多条线程一起下载
  * QQ同时和多个人一起视频
  * 服务器同时处理多个客户端请求

 

多线程并行和并发的区别

* 并行就是两个任务同时运行,就是甲任务进行的同时,乙任务也同时进行(需要多核CPU)

* 并发是指两个任务都请求运行,而处理器只能接收一个任务,于是就安排轮流执行这两个任务,由于时间间隔较短,因此用户感觉两个任务同时运行

* 比如:我和两个网友聊天,左手操作一个电脑,右手操作另一个电脑,就叫并行
  * 如果用一台电脑先给一个人发消息,再用这台电脑给另一个人发消息,这就叫并发

 

Java程序运行的原理和JVM的启动

* A:Java程序运行原理
  * Java命令会启动Java虚拟机,启动JVM就等于启动了一个应用程序,也就是启动了一个进程,
  * 该进程会自动启动一个“主线程”,然后主线程区调用某个类的main方法

* B:JVM的启动
  * JVM的启动至少启动了垃圾线程和主线程,所以是多线程的

技术图片
package com.heima.thread;

public class Demo1_Thread {
    // 证明JVM是多线程的
    public static void main(String[] args) {
        for (int i = 0; i < 390000; i++) {
            new Demo();
        }
        for (int i = 0; i < 10000; i++) {
            System.out.println("我是主线程的执行代码");
        }
    }
}

class Demo { // 垃圾清理线程
    @Override
    public void finalize() throws Throwable {
        System.out.println("垃圾被清扫了");
    }
}
thread

 

 

Thread 实现多线程

* A:继承Thread
  * 定义类继承Thread
  * 重写 run()方法
  * 把新线程要做的事写在 run()方法中
  * 创建线程对象
  * 开启新线程,内部自动会执行 run()方法

技术图片

 

Java 多线程 01

标签:cpu   main   string   代码   执行   str   system   ring   另一个   

原文地址:https://www.cnblogs.com/zhaochuming/p/12722082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!