多线程编程

  • 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 方法中。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容