美文网首页
JAVA基础笔记(3)

JAVA基础笔记(3)

作者: 大虾咪 | 来源:发表于2016-09-27 17:04 被阅读16次

    进程:是一个正在执行中的程序

    每一个进程执行都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。

    线程:就是进程中的一个独立的控制单元  线程在控制着进程的执行

    一个进程至少又一个线程

    java 虚拟机VM  启动的时候会有一个进程java.exe  该进程中至少有一个线程负责java程序的执行

    而且这个线程运行的代码存在于main方法中 该线程成为主线程

    扩展:其实更细节说jvm  ,jvm启动不止一个线程,还有负责垃圾回收机制的线程

    创建线程的第一种方法:继承Thread类

    步骤:1.定义类继承Thread

    2.复写Thread类中的run方法: 目的将自定义代码存储在run方法。让线程运行

    3.调用线程的start  :该方法的两个作用:启动线程,调用run方法

    创建线程的第二种方法:实现Runable接口

    步骤:1.定义类实现Runable接口

    2.覆盖Runable接口中的run方法 ,将线程要运行的代码存放在该run方法中

    3.通过Thread类建立线程对象

    4.将Runable接口的子类对象作为实际参数传递给Thread类的构造函数

    为什么要将Runable接口的子类对象传递给Thread的构造函数。

    因为,自定义的run方法所属的对象是Runable接口的子类对象,所以要让线程去指定指定的run方法。

    就必须明确该run方法的所属对象

    5.调用Thread类的start方法开启线程并调用Runable接口子类的run方法

    实现方式和继承方式有什么区别?

    实现方式好处:避免了单继承的局限性

    在定义线程时,建立使用实现方式

    两种方式区别:

    继承Thread:线程代码存放Thread子类run方法中

    实现Runable:线程代码存放在接口子类的run方法中

    notify();唤醒第一个进入等待的

    jdk1.5中提供了 多线程升级的解决方案

    将同步synchronized替换成现实的Lock操作

    将Object中的wait , notify notifyAll 替换成 Condition对象  await single signalAll()

    该对象可以Lock锁 进行获取

    如何停止线程?

    stop方法已经过时

    只有一种方法 ,run方法结束

    开启多线程运行,运行代码通常是循环结构

    只要控制住循环,就可以让run方法结束 ,也就是线程结束

    特殊情况 当线程处于了冻结状态,就不会读取到标志,那么线程就不会停止

    jion:

    当A线程执行到了B线程的。jion()方法时,A就会等待。等B线程都执行完了,A才会执行。

    jion可以用来临时加入线程执行。

    线程优先级

    相关文章

      网友评论

          本文标题:JAVA基础笔记(3)

          本文链接:https://www.haomeiwen.com/subject/psacyttx.html