Java 继承Thread实现线程

简介: 本文目录1. 知识点2. 实现3. 测试

1. 知识点

实现线程非常简单,通过继承Thread类即可,继承后的run()方法会在单独的线程中跑。

2. 实现

通过继承Thread实现一个线程,功能是往文件中写点东西。

package org.maoge.thread;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
 * 写文件线程
 */
public class WriteFileThread extends Thread {
  private String fileName;
  public WriteFileThread(String filename) {
    this.fileName = filename;
  }
  @Override
  public void run() {
    byte buffer[] = new byte[1000000];
    OutputStream out = null;
    try {
      out = new FileOutputStream(fileName);
      out.write(buffer, 0, buffer.length);
      System.out.println("[" + fileName + "]-endTime:" + System.currentTimeMillis());
    } catch (Exception ex) {
      System.out.println(ex.toString());
    } finally {
      try {
        out.close();
      } catch (IOException ioEx) {
        System.out.println(ioEx.toString());
      }
    }
  }
}

3. 测试

/**
 * 写文件测试
 */
public class WriteFileTest {
  public static void main(String[] args) {
    System.out.println("startTime:" + System.currentTimeMillis());
    for (int i = 0; i < 10; i++) {
      WriteFileThread writeFile = new WriteFileThread("D:\\temp\\" + (i + 500) + ".txt");
      writeFile.start();
    }
  }
}

运行结果如下,注意观察能发现,不是开始的早就结束的早。

startTime:1586956308113
[D:\temp\500.txt]-endTime:1586956308116
[D:\temp\501.txt]-endTime:1586956308116
[D:\temp\502.txt]-endTime:1586956308116
[D:\temp\506.txt]-endTime:1586956308117
[D:\temp\505.txt]-endTime:1586956308119
[D:\temp\504.txt]-endTime:1586956308120
[D:\temp\507.txt]-endTime:1586956308120
[D:\temp\503.txt]-endTime:1586956308120
[D:\temp\508.txt]-endTime:1586956308121
[D:\temp\509.txt]-endTime:1586956308121
相关文章
|
9月前
|
Arthas 监控 Java
Arthas thread(查看当前JVM的线程堆栈信息)
Arthas thread(查看当前JVM的线程堆栈信息)
1685 10
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
1188 60
|
Java
Java 面向对象编程的三大法宝:封装、继承与多态
本文介绍了Java面向对象编程中的三大核心概念:封装、继承和多态。
665 15
|
Java C# Python
线程等待(Thread Sleep)
线程等待是多线程编程中的一种同步机制,通过暂停当前线程的执行,让出CPU时间给其他线程。常用于需要程序暂停或等待其他线程完成操作的场景。不同语言中实现方式各异,如Java的`Thread.sleep(1000)`、C#的`Thread.Sleep(1000)`和Python的`time.sleep(1)`。使用时需注意避免死锁,并考虑其对程序响应性的影响。
368 8
|
Java 程序员 调度
【JavaEE】线程创建和终止,Thread类方法,变量捕获(7000字长文)
创建线程的五种方式,Thread常见方法(守护进程.setDaemon() ,isAlive),start和run方法的区别,如何提前终止一个线程,标志位,isinterrupted,变量捕获
|
安全 Java API
【JavaEE】多线程编程引入——认识Thread类
Thread类,Thread中的run方法,在编程中怎么调度多线程
|
4月前
|
Java
如何在Java中进行多线程编程
Java多线程编程常用方式包括:继承Thread类、实现Runnable接口、Callable接口(可返回结果)及使用线程池。推荐线程池以提升性能,避免频繁创建线程。结合同步与通信机制,可有效管理并发任务。
233 6
|
7月前
|
Java API 微服务
为什么虚拟线程将改变Java并发编程?
为什么虚拟线程将改变Java并发编程?
389 83