美文网首页
多线程编程

多线程编程

作者: 东风谷123Liter | 来源:发表于2018-07-08 11:53 被阅读0次
  • JAVA VM 启动的时候会有一个进程java.exe

  • 该进程至少有一个线程负责java程序的运行

  • 而且这个线程的代码存在于main方法中

  • 该线程称之为“主线程”

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

Thread类在java.lang类中,可以查找API文档看其用法。

  • 创建新执行线程有两种方法。一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。
    • 定义类继承Thread类
    • 重写run()方法
    • 创建并启动线程(start()方法)
    • 注意进程运行时主线程结束进程不一定结束,要当所有线程都结束时进程才结束
    • 多核CPU内存受限,
  • 创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。
    • 定义实现Runnable接口
    • 覆盖Runnable接口中的run方法
      • 将线程要运行的代码存放在run方法中
    • 通过Thread类建立线程对象
    • 将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。
      • 因为自定义run方法所属对象是Runnable接口的子类对象,所以要让线程去指定指定对象的run方法,就必须明确该run方法的所属对象。
    • 调用Thread类的start方法开启线程,并调用Runnable接口子类的run方法。
  • 实现方式和集成方式有什么区别:
    • 实现方式:
      • 避免了单集成局限性,一个子类可继承多个接口类。
      • 集成Thread类:线程代码存放在Thread子类run方法中;
      • Runnable:存放在Runnable接口子类的run 方法中。

相关文章

网友评论

      本文标题:多线程编程

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