zoukankan      html  css  js  c++  java
  • 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、死亡状态

  • 相关阅读:
    第十一周课程总结
    第十周学习总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周总结&第五次实验报告
    第六周学习总结&第四次实验报告
    课程总结
    第十四周课程总结&实验报告(简单记事本的实现)
    第十三周课程总结
    第十二周
  • 原文地址:https://www.cnblogs.com/hezhuo/p/12168565.html
Copyright © 2011-2022 走看看