`
wwty
  • 浏览: 542950 次
  • 性别: Icon_minigender_1
  • 来自: 北京-郑州
社区版块
存档分类
最新评论

关于对线程的两种实现方式的选择

阅读更多

如果不需要修改除了run方法之外的其他方法的话,那么最好去实现Runnable接口
1、如果当前类已经继承了一个类,由于java当中单继承的限制,那么最好实现Runnable接口
2、可以很好的使用全局变量:

class MyThread implements Runnable
MyThread mt = new MyThread();
new Thread(mt).start();
new Thread(mt).start();
new Thread(mt).start();

 

由于是同一个mt对象,所以可以很方便的操作同一个对象变量

 

针对第二条采用继承Thread也是可以实现,变通一下如下:

class MyThread //implements Runnable//extends Thread
{
        int index=0;
        private class InnerThread extends Thread
        {
                public void run()
                {
                        while(true)
                        {
                                System.out.println(Thread.currentThread().getName()+":"+index++);
                        }
                }
        }
        Thread getThread()
        {
                return new InnerThread();
        }
}

 

外部调用:
MyThread mt=new MyThread();
mt.getThread().start();
mt.getThread().start();
mt.getThread().start();
mt.getThread().start();

 

总结:

在不需要对Thread类的方法进行修改的前提下,还是实现Runnable接口的好

分享到:
评论

相关推荐

    多线程两种实现方式Java

    无论你是通过继承`Thread`还是实现`Runnable`,都需要对线程同步和通信有深入的理解,以便在实际项目中解决并发问题。通过实践`ThreadProject`这样的实战项目,你可以更好地将理论知识应用于实际场景,从而提高编程...

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

    Java 语言提供了多种方式来实现多线程编程,今天我们将讨论其中的两种实现方式,并使用四个线程来演示对变量 J 的加一和减一操作。 实现方式一:通过继承 Thread 类 在 Java 中,我们可以通过继承 Thread 类来创建...

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

    本文将深入探讨两种传统的Java线程实现方式,并通过一个具体的例子来阐述如何创建和管理这些线程。 首先,我们来看第一种线程实现方式:继承`Thread`类。当你创建一个新的类继承自`java.lang.Thread`,你可以重写它...

    线程同步的四种方式

    以下是对线程同步的四种主要方式的详细解释: 1. **事件(Event)** 事件是Windows API提供的一种线程同步机制,它允许一个线程通知其他线程某个特定事件已经发生。事件对象有两种状态:有信号(Signaled)和无...

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

    在不同的操作系统和平台上,线程的实现方式有所不同。例如,POSIX的P-threads是用户级线程库,Java提供了自己的线程库,Windows2000/XP等使用内核级线程,而Linux系统上的实现则更加多样化,既有纯用户级线程也有...

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

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

    java多线程的两种实现

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。...在实际开发中,应根据需求选择合适的线程实现方式,并熟练掌握线程同步和通信机制,确保程序的正确性和性能。

    kafka demo ,两种线程消费方式

    在本文中,我们将深入探讨Apache Kafka的两种线程消费方式,这是基于提供的标题"Kafka Demo,两种线程消费方式"。Kafka是一种分布式流处理平台,广泛用于实时数据处理和消息传递。在这个示例中,我们将关注如何使用...

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

    在Java编程中,多线程是并发执行任务的重要机制,它可以提高程序的执行效率和响应速度。本篇文章将深入探讨两种实现多线程的方式:继承...然而,根据具体的应用场景和需求,开发者需要权衡利弊,选择最适合的实现方式。

    创建线程类轻松实现线程管理

    Java提供两种主要方式来创建线程:继承`Thread`类或实现`Runnable`接口。这两种方法都可以让类成为可执行的线程,但它们之间存在一些差异。 1. 继承`Thread`类: 当你创建一个新的类并直接继承`Thread`类时,你可以...

    ios多线程开发的常用四种方式和基本使用

    本文将深入探讨四种常用的iOS多线程开发方式:pthread、NSThread、NSOperation及NSOperationQueue,以及Grand Central Dispatch(GCD)。 首先,让我们了解下pthread。pthread是POSIX线程库,它在iOS中被用于跨平台...

    多线程的使用与线程锁的两种实现

    本主题将深入探讨多线程的使用以及线程锁的两种主要实现方式: synchronized关键字和ReentrantLock。 一、多线程基础 1. 线程创建: - 继承Thread类:创建一个新的类,该类继承自Thread类,并重写run()方法。然后...

    在Java中创建线程有两种方法

    如果你需要对线程类进行扩展或者线程类本身就包含特定的行为,那么继承`Thread`可能是更合适的选择。而如果希望保持类设计的简洁,或者多个线程共享同一个任务实现,那么实现`Runnable`接口会是更好的选择。

    在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口(csdn)————程.pdf

    在Java编程语言中,创建多线程有两种主要的方法:继承`...总之,Java中实现多线程的两种方式各有优缺点,选择哪种方式取决于具体的需求和设计考虑。在处理共享资源时,务必注意线程安全,避免竞态条件和死锁等问题。

    设计4个线程,其中两个对j增加,两个对j减少

    在描述的场景中,可能使用了以下几种方式来创建线程: 1. **继承Thread类**:创建一个新的类,继承自`Thread`,然后重写`run()`方法。实例化这个新类的对象,并调用`start()`方法即可启动线程。 2. **实现Runnable...

    Linux 线程实现机制分析

    混合模型结合了这两种方式,既能充分利用多处理器,又能减少调度成本,但在Linux早期版本中并未实现。 LinuxThreads是Linux上流行的一种线程实现,它采用了线程-进程“一对一”模型。每个线程对应一个轻量级进程,...

    操作系统-线程的实现.pptx

    为了解决这些问题,一些操作系统把用户级线程和内核支持线程两种方式进行组合,提供了组合方式ULT/KST线程。 在组合方式线程系统中,内核支持多个内核支持线程的建立、调度和管理,同时,也允许用户应用程序建立、...

    java多线程实现月食

    Java提供了内置的多线程支持,主要通过两种方式:继承Thread类或实现Runnable接口。在这个项目中,可能采用了实现Runnable接口的方法,因为这样可以避免单继承的限制,提高代码的复用性。 要实现流星和月食的效果,...

    2.1_6_线程的实现方式和多线程模型1

    线程的实现方式主要有两种:用户级线程(User-Level Thread, ULT)和内核级线程(Kernel-Level Thread, KLT,又称“内核支持的线程”)。 用户级线程的实现主要依赖于编程语言提供的线程库。在早期的操作系统中,...

    thread 线程类 实现runnable接口

    "Thread 线程类实现 Runnable 接口" Thread 线程类是 Java 中 Thread 和 Runnable 接口的实现,它提供了线程的基本操作和管理。下面是对 Thread 类的详细介绍: 1. Runnable 接口 Runnable 接口是 Thread 类的...

Global site tag (gtag.js) - Google Analytics