zoukankan      html  css  js  c++  java
  • java知识学习37-多线程

    多线程原理:同一时间内,CPU只能处理1条线程,只有1条线程在工作(执行);多线程并发(同时)执行,其实是CPU快速地在多条线程之间调度(切换)。如果CPU调度线程的时间足够快,就造成了多线程并发执行的假象。当然若是多个CPU的话就可以同时执行多个线程了。

      如下图,在main方法(主线程)中创建一个子线程,然后调用start方法JVM虚拟机会执行子线程中的run方法,而主线程继续执行下面的循环方法,即主线程和子线程相当于同时在并行。一个CPU每次只运行一个线程,所以这两个线程其实是每次随机被调用执行。

      

      下图是从内存角度解释多线程的运行方式。

      

    常用方法:

      

      获取线程名称:

      

      设置线程名称:

      

    多线程的使用:两种方式

      方式1:

        1、创建一个子类继承多线程类Thread,然后在该子类中重写run方法实现我们想要的操作;

        2、在调用类中创建1中的子类对象,然后调用子类对象的start方法,JVM虚拟机会调用被重写的run方法实现多线程效果。

      方式2:推荐使用第二种方式

        1、创建一个Runnable接口的实现类;

        2、在实现类中重写Runnable接口的run方法,设置线程任务;

        3、创建一个Runnable接口的实现类对象;

        4、创建一个Thread类对象,其构造方法中传入Runnable接口的实现类对象;

        5、调用Thread类对象的start方法,开启新线程执行run方法

        

    匿名内部类:没有名字的,写在其他类内部的类。其作用就是简化代码。

      格式:new 父类/接口() { 重写父类/接口中的方法 }

      1.把子类继承父类,重写父类的方法、创建子类对象合成一步完成。

      2.把实现类实现接口,重写实现类的方法、创建实现类对象合成一步完成。

  • 相关阅读:
    认识“委托”
    程序员的修炼之道:从小工到专家(一)
    知识的使用 与 知识的内化
    VB.Net中 Module 的前世今生
    memcached
    C#知识
    Android之垂直显示TextView
    Android开发之各个语言
    Android之hint提示字体大小修改,显示完全
    Android 之计算控件颜色透明度
  • 原文地址:https://www.cnblogs.com/blogofzxf/p/14679217.html
Copyright © 2011-2022 走看看