JAVA多线程基础(一)

一、什么是应用程序

  可以执行的软件 ,如QQ,微信等

二、什么是进程

  进程是正在运行的应用程序,是多个线程的集合。任何软件只要运行起来肯定会有一个进程进行展示,是执行中的程序

  

三、什么是线程

  是进程中正在独立运行一条执行路径,在进程中一定有一个线程,这个线程就是主线程

  

四、什么的多线程

  就是为了提高程序的效率,并不是提高宽带速度而只是程序效率

  

五、多线程的应用场景

  多线程下载、QQ、爬虫、前端开发ajax(异步上传)、分布是job(需要同时一个执行多个任务调度)、使用多线程体现程序的效率

六、如何创建多线程

  1.使用继承Therad类方式

  class CreateThread extends Thread {
    // run方法中编写 多线程需要执行的代码
    publicvoid run() {
      for (inti = 0; i< 10; i++) {
      System.out.println("i:" + i);
      }
    }
  }
  publicclass ThreadDemo {
    publicstaticvoid main(String[] args) {
      System.out.println("-----多线程创建启动-----");
      new CreateThread().start(); //执行
    }
  }

  2.使用实现runlabe接口方式

class CreateRunnable implements Runnable {
    @Override
    publicvoid run() {
        for (inti = 0; i< 10; i++) {
            System.out.println("i:" + i);
        }
    }
}
publicclass ThreadDemo2 {
    publicstaticvoid main(String[] args) {
        System.out.println("-----多线程创建开始-----");
        // 1.创建一个线程
        CreateRunnable createThread = new CreateRunnable();
        // 2.开始执行线程 注意 开启线程不是调用run方法,而是start方法
        System.out.println("-----多线程创建启动-----");
        Thread thread = new Thread(createThread);
        thread.start();
        System.out.println("-----多线程创建结束-----");
    }
}

  3.使用匿名内部类方式

   System.out.println("-----多线程创建开始-----");
   Thread thread = new Thread(new Runnable() {
    public void run() {
      for (int i = 0; i< 10; i++) {
        System.out.println("i:" + i);
      }
    }
  }
   thread.start();  //执行
   System.out.println("-----多线程创建结束-----");

  4.callable

  5.使用线程池创建线程

七、使用继承Thread类还是使用实现Runnable接口好?

  使用runnable接口好,原因实现了接口还可以继续继承,继承了类不能再继承。

八、什么是同步

  必须按照顺序来执行,代码从上往下进行执行

九、什么是异步

  多线程,多线程之间每个线程互不影响。

十、获取线程对象以及名称

  1.常用线程api方法 

    启动线程:start()  

    获取当前线程对象:currentThread()

    获取当前线程ID:getID()

    获取当前线程名称:getName()

    休眠线程:sleep(long mill)

    停止线程:Stop()

  2.常用线程构造函数

      分配一个新的 Thread 对象:Thread()

    分配一个新的 Thread 对象具有指定的 name正如其名:Thread(String name)

    分配一个新的 Thread 对象:Thread(Runabler)

    分配一个新的 Thread 对象:Thread(Runabler,String name)

十一、多线程运行状态

  

  1、新建状态

  2、就绪状态

  3、运行状态

  4、阻塞状态

  5、死亡状态

猜你喜欢

转载自www.cnblogs.com/hezhuo/p/12168565.html