`

线程的三种实现方式

阅读更多
Java线程的三种实现方式:
大家通常了解的是Thread类与Runnable接口

一、Thread线程
    Thread线程就是覆盖Thread类的run(){}方法
代码例子:

构建自己的线程:

class PrimeThread extends Thread {
         long minPrime;
         PrimeThread(long minPrime) {
             this.minPrime = minPrime;
         }

         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }

启动线程:

PrimeThread p = new PrimeThread(143);
     p.start();



二、Runnable接口线程

   Runnable接口线程的构建就是实现run方法

构建线程:
class PrimeRun implements Runnable {
         long minPrime;
         PrimeRun(long minPrime) {
             this.minPrime = minPrime;
         }

         public void run() {
             // compute primes larger than minPrime
              . . .
         }
     }

启动线程:

PrimeRun p = new PrimeRun(143);
     new Thread(p).start();


三、Callable接口线程

Callable是比较特殊的线程接口与Runnable的区别是能够返回相关的处理结果一般与
FutureTask组合使用,用task承接返回结果
Callable线程的实现是实现call方法
注意返回类型的控制

构建线程:

public class ComputeValue implements Callable<Integer> {

@Override
public Integer call() throws Exception {
// TODO Auto-generated method stub
Thread.sleep(10000);
return 5;
}

}

启动线程:

                ComputeValue callable = new ComputeValue();
FutureTask task = new FutureTask(callable);
Thread thread = new Thread(task);
thread.start();
                System.out.println(task.get());
分享到:
评论

相关推荐

    java多线程每个线程挨着打印ABC的4种实现方式

    java多线程每个线程挨着打印ABC的4种实现方式,有4个线程t1、t2、t3、t4,t1打印A后t2打印A再t3打印A再t4打印A,然后从新回到t1打印B再t2打印B...t4打印B... 4个线程轮流打印abc... 一个线程可以理解为一个人,打印...

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

    ### Java中的两种多线程实现方式 在Java中,实现多线程的两种主要方式分别是:**通过继承`Thread`类** 和 **实现`Runnable`接口**。下面将详细介绍这两种方式,并提供相应的示例程序。 #### 一、通过继承`Thread`...

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

    4. **三种线程通信方式结合**: - 在这个示例中,可能结合了同步和异步消息传递、事件对象(如事件句柄)以及信号量等机制。 - 同步消息传递:等待消息被处理后再继续执行,如SendMessage。 - 异步消息传递:发送...

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

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

    Java中实现线程的三种方式及对比_动力节点Java学院整理

    Java 中实现线程的三种方式及对比 Java 中创建线程主要有三种方式:继承 Thread 类创建线程类、通过 Runnable 接口创建线程类、通过 Callable 和 Future 创建线程。 继承 Thread 类创建线程类 继承 Thread 类创建...

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

    本篇文章将深入探讨Android(基于Java)线程的两种主要实现方式:`Thread`类和`Handler-Looper-Messenger`机制。 一、`Thread`类 `Thread`类是Java中的基础线程类,也是Android线程编程的基础。创建一个新的线程...

    windows线程几种同步方式

    在Windows操作系统中,多线程编程是常见的并发执行方式,以提高程序的执行效率。然而,多线程间的数据安全和资源管理问题也随之而来,这就需要我们使用线程同步技术来确保线程间的协调和避免数据竞争。本篇文章将...

    Linux 线程实现分析

    这种实现方式非常适合SMP系统,并且由于线程的调度由内核负责,因此可以有效地利用多处理器资源。 #### 四、其他的线程实现机制 - **核心级线程(Core-Level Threads)**:核心级线程是由操作系统内核直接管理和调度...

    详细解读JAVA多线程实现的三种方式

    总结来说,Java多线程的实现方式各有优缺点。继承Thread类简单直观,但不支持多重继承;实现Runnable接口更加灵活,适合需要继承其他类的情况;使用ExecutorService、Callable和Future提供了更强大的线程管理和返回...

    QT多线程的实现方式:QThread run优雅的创建与退出QT多线程

    QT提供了多种实现多线程的方式,其中QThread类是最常用的一种。本文将详细讲解如何在QT中使用QThread来优雅地创建和退出多线程。 一、QThread简介 QThread是QT中的一个类,用于提供线程功能。与标准C++库中的std::...

    线程同步的三种方式 源码+说明

    在Windows系统中,有三种主要的线程同步机制:互斥量(Mutex)、事件对象(Event)和临界区(Critical Section)。以下是对这些机制的详细说明: 1. **互斥量(Mutex)** 互斥量是一种跨进程的线程同步工具,它...

    VB 实现多线程

    #### 三、使用VB实现多线程 ##### 3.1 关键API介绍 在VB中实现多线程的关键是使用`CreateThread`函数。这是一个来自Windows API的强大工具,用于创建新的线程。 **CreateThread**函数声明: ```vb Public ...

    PB多线程实现

    PB,全称PowerBuilder,是一种历史悠久的面向对象...总的来说,PB系列(尤其是PB12.5和PB.NET)提供了多种多线程实现方式,适应了不同开发需求。理解并掌握这些技术,能帮助开发者构建更加高效、响应迅速的PB应用程序。

    Delphi 线程安全的三种方法

    Delphi 线程安全的三种方法是指在 Delphi 应用程序中,如何确保多线程安全的编程方式。多线程编程是指在一个应用程序中,使用多个线程来执行不同的任务,以提高程序的效率和响应速度。然而,在多线程编程中,一个...

    linux上实现多进程和多线程实现同步互斥(源代码)

    在Linux操作系统中,多进程和多线程是两种并发执行的方式,它们在处理并发问题时,经常需要进行同步和互斥操作,以确保数据的一致性和程序的正确性。本篇将详细介绍这两种并发模型以及如何在Linux环境中实现同步互斥...

    Java多线程技术 线程的死锁,详细阐述了多线程的两种实现方法: 由Thread类派生子类;实现Runnable接口

    通过深入理解线程的基本概念、生命期、状态转换、调度原则以及实现方式,可以有效地利用多线程来优化应用程序。同时,合理地处理线程间的同步和避免死锁也是构建稳定、可靠的多线程应用的关键。

    C语言多线程实现

    我们将关注三个核心部分:线程创建、线程同步以及线程通信。 首先,我们要引入Windows API中的线程函数。在C语言中,Windows API提供了CreateThread函数用于创建新线程。在`main.c`文件中,我们可能看到如下代码...

    浅析Java语言中线程的生命周期及实现方式.pdf

    三种实现方式各有优缺,继承Thread类简单易用,但不灵活,实现Runnable接口灵活性高,但需要手动管理线程的生命周期,使用线程池灵活性高,且自动管理线程的生命周期,但需要更多的资源。 线程是Java语言中定义的...

    三个分别由单线程 多线程 线程池实现的简单网关

    标题中的“三个分别由单线程、多线程、线程池实现的简单网关”涉及到的是并发处理的三种常见模型。在IT行业中,尤其是在服务器端编程和高性能系统设计中,如何有效地处理并发请求是至关重要的。让我们逐一探讨这三个...

    多线程显示的三种不同方式显示hello world

    下面将详细阐述标题和描述中提到的三种不同的多线程显示"Hello, World!"的方法:临界区法、全局变量法和对象法。 1. **临界区法**: 临界区法是通过控制共享资源的访问来避免线程间的冲突。在多线程环境中,临界区...

Global site tag (gtag.js) - Google Analytics