zoukankan      html  css  js  c++  java
  • 多线程

    多线程

    并发:交替进行

    并行:同时进行

     

    创建多线程:

    1. 创建一个继承Thread类的类

    2. 重写Thread类中的run()方法

    3. 创建Thread类的子类对象

    4. 调用Thread类的start()方法

    //使用匿名内部类创建多线程
    public class Thread01 {
       public static void main(String[] args) {
           new Thread(){
               @Override
               public void run() {
                   System.out.println("创建了多线程");
              }
          }.start();
      }
    }

     

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

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

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

    4. 创建Thread类对象,构造方法中传递Runnable接口的实现类对象

    5. 调用Thread类中的start方法,开启新线程执行run方法

    //使用匿名内部类创建多线程
    public class Thread01 {
       public static void main(String[] args) {
                   new Thread(new Runnable() {
               @Override
               public void run() {
                   System.out.println(Thread.currentThread().getName()+"创建了新线程");
              }
          }).start();
      }
    }

     

    实现Runnable接口的好处:

    1. 避免了单继承的局限性

      一个类只能继承一个类,类继承Thread类就不能继承其他的类。

    2. 增强了程序的扩展性,降低了程序的耦合性(解耦)

      实现Runnable接口的方法,把设置线程任务和开启新线程进行了分离(解耦)。

     

    run和start区别:

    1. 直接调用线程类的run()方法,它就会被当做一个普通的函数调用,程序中任然只有主线程这一个线程。也就是说,star()方法可以异步地调用run()方法,但是直接调用run()方法确实同步的,因此也就不能达到多线程的目的。 run()和start()的区别可以用一句话概括:单独调用run()方法,是同步执行;通过start()调用run(),是异步执行。

    2. run只是Thread里面的一个普通方法,start是启动线程的方法。

     

    获取线程的名称:Thread.currentThread().getName()

    多线程根据优先级先后实现方法,如果优先级相同,cpu随机执行方法。

  • 相关阅读:
    C#下编程完成IIS网络App的权限设置
    IIS6与IIS7在编程实现HTTPS绑定时的细微差别
    Android 对话框(Dialog)大全
    Android 开发中使用Intent传递数据的方法
    设计模式--模版设计模式
    android 布局页面文件出错故障排除Exception raised during rendering: java.lang.System.arraycopy([CI[CII)V
    viewPager的切换动画
    设计模式--状态模式
    git学习
    二〇一五年五月二十二日--bug--启动页面出现模糊的问题
  • 原文地址:https://www.cnblogs.com/scenario/p/13679342.html
Copyright © 2011-2022 走看看