`

实现线程的两种方式

阅读更多
java实现多线程有两种方法
  • 继承Thread类
  • 实现Runnable接口


继承Thread类
public class ThreadDemo extends Thread {
    private String name;
    
    public ThreadDemo(String name) {
		this.name = name;
	}
    
    @Override
    public void run() {
    	for(int i = 0; i < 10; i++) {
    		System.out.println(name + ": i=" + i);
    	}
    }
    
    public static void main(String[] args) {
		ThreadDemo demo1 = new ThreadDemo("线程1");
		ThreadDemo demo2 = new ThreadDemo("线程2");
		ThreadDemo demo3 = new ThreadDemo("线程3");
		
		demo1.start();
		demo2.start();
		demo3.start();
	}
}   


实现RunnableDemo接口
public class RunnableDemo implements Runnable{
    private String name;
    
    public RunnableDemo(String name) {
    	this.name = name;
    }
    
	@Override
	public void run() {
		for(int i = 0; i < 10; i++) {
			System.out.println(name + ":i = " + i);
		}
	}
	
	public static void main(String[] args) {
		Thread demo1 = new Thread(new RunnableDemo("线程1"));
		Thread demo2 = new Thread(new RunnableDemo("线程2"));
		Thread demo3 = new Thread(new RunnableDemo("线程3"));
		
		demo1.start();
		demo2.start();
		demo3.start();
	}
}
分享到:
评论

相关推荐

    Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。

    下面将详细介绍这两种方式,并提供相应的示例程序。 #### 一、通过继承`Thread`类实现多线程 在Java中,可以通过继承`Thread`类并重写其`run()`方法来创建一个新线程。这种方式的优点是使用简单,可以直接调用`...

    多线程两种实现方式Java

    `ThreadProject`可能是包含多个Java文件的项目,这些文件展示了如何通过上述两种方式实现多线程。你可以通过运行这些示例来更好地理解和学习Java多线程的概念。例如,它可能包含一个继承`Thread`的类,一个实现`...

    java用线程两种方式

    在Java中,创建和使用线程主要有两种方式,一种是继承Thread类,另一种是实现Runnable接口。这两种方式在使用上有一些区别,每种方式都有其特定的用法和特点。 首先,继承Thread类的方式。通过继承Thread类来创建...

    Java中有两种实现多线程的方式以及两种方式之间的区别

    Java中有两种实现多线程的...  Java代码 Java中有两种实现多线程的方式以及两种方式之间的区别 Java中有两种实现多线程的方式以及两种方式之间的区别  classThreadTestextendsThread{ privateintticket=100; publi

    Qt创建线程的两种方式+线程池方式

    1.方式1:继承 QThread 类方式:...两种方式的选择取决于具体的需求和设计。仅需简单的线程操作,继承 QThread 类方式可能更为简洁。如果需要更灵活的线程控制和对象交互,使用类对象的 moveToThread() 方式可能更适合

    java用线程的两种实现方式设计四个线程两次对J加1两次对J减1

    Java 语言还提供了另一种方式来创建线程,即通过实现 Runnable 接口。在上面的代码中,我们定义了一个 T1 类,该类实现了 Runnable 接口,并覆盖了 run 方法。在 run 方法中,我们使用 while 循环来不断地调用 ...

    用户级线程的介绍,怎样实现多线程等等

    综合方法,如Solaris操作系统,结合了用户级线程和内核级线程的优点,通过用户级线程库进行线程管理和调度,但在需要时可以利用内核级线程实现线程并行执行,避免了用户级线程的一些限制。 在不同的操作系统和平台...

    java线程:两种传统的实现方式.zip

    这两种方式都可以实现线程的创建和运行,但实现`Runnable`接口更常见,因为它允许你在不干扰类继承结构的情况下复用已有的类。 在实际应用中,你可能还需要考虑线程同步和通信,比如使用`wait()`, `notify()`或`...

    实现Runnable接口和继承Thread类两种方式实现在屏幕上随机画正方形线程程序

    本文将深入探讨如何通过实现`Runnable`接口和继承`Thread`类两种方式来创建线程,并实现在屏幕上随机画正方形的程序。 首先,让我们了解线程的概念。线程是程序中的单一顺序控制流,一个进程可以包含多个线程,它们...

    线程同步的四种方式

    事件对象有两种状态:有信号(Signaled)和无信号(Unsignaled)。当事件为有信号状态时,等待该事件的线程可以继续执行。事件有手动重置和自动重置两种类型。手动重置事件在释放一个等待线程后仍保持有信号状态,...

    多线程两种方式和区别总结

    首先,让我们了解这两种方式的基本概念: 1. **继承Thread类**:这是创建多线程的直接方式,通过创建一个新的类,该类继承自`Thread`类,然后重写`run()`方法。创建线程时,只需要创建该子类的实例并调用`start()`...

    两种多线程使用方式演示.rar

    首先,我们要了解多线程的两种基本实现方式: 1. **线程对象创建**:这是最常见的方式,程序员通过调用易语言提供的线程创建函数(如“创建线程”命令)创建一个新的线程。线程对象有自己的执行入口点,通常是一个...

    线程间通信方式3:消息传递方式

    本示例“线程间通信方式3:消息传递方式”着重介绍了通过消息传递实现线程间的通信。下面将详细阐述这种通信方式以及相关的技术点。 1. **消息传递**: - 在Windows环境下,消息传递是通过消息队列、消息循环和...

    kafka demo 两种线程消费方式

    【标题】"Kafka Demo 两种线程消费方式"展示了在Kafka中处理消息的两种常见线程模型,这是理解Kafka消费者工作原理的关键部分。Kafka是一个分布式流处理平台,用于构建实时数据管道和应用,它允许生产者发布消息到...

    kafka demo ,两种线程消费方式

    在本文中,我们将深入探讨Apache Kafka的两种线程...这两种方式各有优缺点,需要根据实际的性能需求和系统架构来决定。记住,无论选择哪种方式,都需要确保代码的正确性和线程安全性,以及对Kafka消费者API的熟练掌握。

    Android(Java)线程的两种实现方式

    有时,结合使用这两种方式可以达到更好的效果,比如使用`AsyncTask`(内部使用了`Thread`和`Handler`),它提供了一种更为简便的异步处理方式,适合执行耗时但需要回调结果的短任务。 总的来说,理解和熟练掌握...

    Java多线程-对比创建多线程的两种方式

    Java多线程编程中,创建线程主要有两种方式:继承`Thread`类和实现`Runnable`接口。这两种方式虽然都能实现多线程,但它们在实际应用中有着不同的特性和适用场景。 首先,我们来看看继承`Thread`类的方式。这种方式...

    Qt两种方法实现多线程并安全结束线程及QMutex加锁Qt单例化实现

    - **线程同步**:QMutex是一种互斥锁,用于保护共享资源不被多个线程同时访问。在访问关键区域(可能引发竞争条件的部分)之前,应调用`lock()`,访问结束后调用`unlock()`。 - **加锁技巧**:确保每次`unlock()`...

    易语言两种多线程使用方式演示

    总结来说,易语言提供了“创建线程”和“启动进程”两种多线程实现方式,分别适用于不同场景。学习和掌握这些方法,对于易语言的开发者来说,是提高程序性能和解决复杂问题的重要技能。结合提供的源码,我们可以更...

    java多线程的两种实现

    在Java中,有两种主要的实现多线程的方式:通过`Thread`类和通过实现`Runnable`接口。 1. **通过`Thread`类实现多线程** 当我们创建一个`Thread`类的子类时,可以重写`run()`方法来定义线程执行的任务。例如: ``...

Global site tag (gtag.js) - Google Analytics