线程

进程是什么?进程就是程序在进行一次动态执行的过程,它对应了从代码加载执行至完成的一个完整的过程,这个过程也就是进程本身从产生、发展至消亡的过程

在这个过程中会产生许多线程

如下图:每点开一个软件就是进程

 

 

 

进程的特点:

   → 进程是系统运行的基本单位

   → 每一个进程都有自己独立的一块内存空间、一组系统资源

      → 每一个进程的内部数据和状态都是完全独立的

线程:那么什么是线程?就是我们的电脑每当你点开一个软件就会产生一个任务,每个任务会对应一个进程

如下图

 

多线程:多线程作为一种多任务并发的工作方式,有着广泛的应用,合理使用线程,可以减少开发和维护的成本

优势:

  → 充分利用了CPU的资源:执行单线程程序时,若线程发生阻塞,CPU可能会处于空闲状态,这样就会造成计算机资源的浪费

   而使用多线程可以在某个线程处理休眠或阻塞状态时运行其他线程,可以大大提高资源利用率

    → 简化编程模型:一个既长又复杂的进程可以考虑分为几个多线程,成为几个独立运行的部分,这样更有助于开发人员对程序的理解和维护

    → 带来良好的用户体验:多个线程的交替执行,减少或避免了因程序阻塞或意外情况造成的响应过慢,降低了用户等待的机率;

 

JAVA中创建线程的两种方式:继承Thread类 和 实现Runnable接口

  继承Thread类的方式创建线程步骤:

      (1)定义MyThread类继承Thread类  

      (2)重写run方法,在run方法中实现数据输出

      (3)创建线程对象,调用start方法启动线程

  

  实现Runnable接口的方式创建线程步骤:

        (1)定义MyRunnable类实现Runnable接口,并实现Runnable接口在run方法中实现输出数据  

      (2)创建MyRunnable类的对象myRunnable

      (3)创建一个Thread类的对象myThread,将myRunn作为对象传入Thread类构造方法的参数传入

        (4) 调用myThread对象的start方法启动线程

 

  线程的状态:

      1:创建状态

      2:就绪装态

      3:运行状态

      4:阻塞状态

      5:死亡状态

 

  线程方法:

      Thread.join(); //强制转换线程

      Thread.slpee(); // 线程休眠

      Thread.yield(); // 线程礼让

      Thread.getName(); // 返回线程的名称

      Thread.getPrority(); // 返回线程优先级

      Thread.setPrority(); // 更改线程优先级 

posted @ 2019-12-11 20:50  一只鸽子  阅读(143)  评论(0)    收藏  举报