黑马程序员——java基础—000

来源:互联网 发布:java基础入门培训学校 编辑:程序博客网 时间:2024/04/30 07:38

进程:

     正在运行的程序,是系统进行资源分配和调用的独立单位。

     每一个进程都有它自己的内存空间和系统资源。

 什么事线程?

     在同一个进程内又可以执行多个任务,而这每一个任务我就可以看出是一个线程。

     线程:是程序的执行单元,执行路径。是程序使用CPU的基本单位。

  

     单线程:如果程序只有一条执行路径。

     多线程:如果程序有多条执行路径。

 

多线程有什么意思呢??

 

并行和并发:

     前者是逻辑上同时发生,指在某一个时间内同时运行多个程序。

     后者是物理上同时发生,指在某一个时间点同时运行多个程序。

 

 

Java程序的运行原理:

       由java命令启动JVM,JVM启动就相当于启动了一个进程。

       接着有该进程创建一个主线程去调用main方法。

 

思考:

  JVM虚拟机的启动时单线程还是多线程的?

      多线程:原因:是垃圾回收也要先启动,否则很容易会出现内存溢出。

 

 

 Java怎么实现多线程?
  方式1: 继承Thread类。

        A: 自定义MyThread继承Thread类。

        B:MyThread类里面重run()?

                  为什么是run()方法呢?

  不是类中的所有代码都需要被线程执行的。

 而这个时候,为了区分哪些代码能够被线程执行,

java提供了Thread类中的润run()用来包含哪些被线程执行的代码。

 

        C:创建对象

        D:启动线程

 

 

面试题:run()start()的区别??

  Run() :仅仅是封装被线程执行的代码,直接调用时普通的方法

  Start() : 首先启动了线程,然后再有jvm去调用该现成的run()方法。

 

TllengalThreadStateException非法的线程状态异常;



获取和设置线程对象名称:

 

Public final  String getName()

        返回该线程的名称;

Public  final  void  setName(String name): 设置线程的名称;

 

 

休眠线程:

   Public   static void sleep(long  milis)

线程加入:

Public   final  void  join()

  Tj1.setName(“李媛”)

 

    

   Tj1.setName(“李世民”)

 

 

Tj1.start()

  Tj1.join()

Tj2.start()

Tj3.start();

  

 

 

线程礼让:

    Public  static void  yield()

后台程序:

Public  final void  setDaemon(Boolean  on)

中断线程:

Public  final void  stop()

Public  void interrupt()

 




多态

package day02;  

abstract class Animal  

{  

    // 所有动物都吃,强迫子类都是实现这个方法  

abstract void eat();  

}  

class Cat extends Animal  

{  

    //复写父类的抽象方法  

public void eat()  

{  

System.out.println("吃鱼");  


package day02;  abstract class Animal  {      // 所有动物都吃,强迫子类都是实现这个方法  abstract void eat();  }  class Cat extends Animal  {      //复写父类的抽象方法  public void eat()  {  System.out.println("吃鱼");  


0 0
原创粉丝点击