美文网首页
Java创建线程的几种方式

Java创建线程的几种方式

作者: 雨景江水 | 来源:发表于2020-08-22 07:40 被阅读0次

一.
Thread.currentThread() : 得到当前的线程对象
Thread.currentThread().getName() : 得到当前线程对象的名字

二.继承于Thread类

//1. 创建一个继承于Thread类的子类
class MyThread extends Thread {
//2. 重写Thread类的run()
@Override
public void run() {
for (int i = 0; i < 100; i++) {
if(i % 2 == 0){
System.out.println(Thread.currentThread().getName() + ":" + i);
}
}
}
}

public class ThreadTest {
public static void main(String[] args) {
//3. 创建Thread类的子类的对象
MyThread t1 = new MyThread();

    //4.通过此对象调用start():①启动当前线程 ② 调用当前线程的run()
    t1.start();
    //问题一:我们不能通过直接调用run()的方式启动线程。

// t1.run();

    //问题二:再启动一个线程,遍历100以内的偶数。不可以还让已经start()的线程去执行。会报IllegalThreadStateException

// t1.start();
//我们需要重新创建一个线程的对象
MyThread t2 = new MyThread();
t2.start();

    //如下操作仍然是在main线程中执行的。
    for (int i = 0; i < 100; i++) {
        if(i % 2 == 0){
            System.out.println(Thread.currentThread().getName() + ":" + i + "***********main()************");
        }
    }
}

}

二.Runnable形式

class Window1 implements Runnable{

private int ticket = 100;

@Override
public void run() {
    while(true){
        if(ticket > 0){
            System.out.println(Thread.currentThread().getName() + ":卖票,票号为:" + ticket);
            ticket--;
        }else{
            break;
        }
    }
}

}

public class WindowTest1 {
public static void main(String[] args) {
Window1 w = new Window1();

    Thread t1 = new Thread(w);
    Thread t2 = new Thread(w);
    Thread t3 = new Thread(w);

    t1.setName("窗口1");
    t2.setName("窗口2");
    t3.setName("窗口3");

    t1.start();
    t2.start();
    t3.start();
}

}

相关文章

  • 线程

    java 中创建线程有哪几种方式? Java中创建线程主要有三种方式: 一、继承Thread类创建线程类 (1)定...

  • Java多线程:线程的创建与启动

    # 面试题: Java中创建线程有几种方式。 不同的创建方式有什么区别。 如何启动一个线程。 # Java中创建线...

  • java多线程面试题(二)

    一、线程有几种创建方式? 这是一道比较常见的java线程问题,一般就是两种线程创建方式: 继承Thread类 实现...

  • 线程(二)

    创建线程有几种不同的方式?你喜欢哪一种?为什么? 考察点:JAVA线程 参考回答: 有三种方式可以用来创建线程:继...

  • java 创建线程的几种方式

    继承Thread类创建线程类 通过Runable接口创建线程类 通过Callable和FutureTask创建线程...

  • Java创建线程的几种方式

    一.Thread.currentThread() : 得到当前的线程对象Thread.currentThread...

  • Java 实现线程的方式有几种方式?带有返回值的线程怎么实现?

    Java 实现线程的方式有几种方式?带有返回值的线程怎么实现? 在Java线程开发中,有几种方法开启线程?假如需要...

  • Java-线程创建的几种方式

    欢迎访问我的博客:http://wangnan.tech 概述 继承Thread类创建线程类 通过实现Runnab...

  • java线程状态

    java的线程状态包括以下几种: NEW 线程创建的初始状态。 RUNABLE 线程正在执行。 注意这里是java...

  • 拜托,不要再问我线程池啦!

    Java提供了几种便捷的方法创建线程池,通过这些内置的api就能够很轻松的创建线程池。在java.util.con...

网友评论

      本文标题:Java创建线程的几种方式

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