`
dianziermu
  • 浏览: 139711 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

线程的使用方法

    博客分类:
  • J2SE
阅读更多

创建线程有两种方法:继承Thread类和实现Runnable接口。

方法一:继承 Thread 类,覆盖方法 run(), 我们在创建的 Thread 类的子类中重写 run() ,加入线程所要执行的代码即可。下面是一个例子:

 

import java.sql.Timestamp;

/**
 * 第N次线程
 *
 * @version 1.0
 * @author 点子二木
 * @date 2008-3-24
 * @right Copyright (C), 2008
 */
import java.io.*;

class ThreadTest extends Thread {
 int count = 1, number;

 public ThreadTest(int num) {
  number = num;
  System.out.println("创建线程 " + number);
 }

 public void run() {
  while (true) {
   System.out.println("线程 " + number + ":计数 " + count);
   if (++count == 6)
    return;
  }
 }

 public static void main(String args[]) {
  for (int i = 0; i < 5; i++)
   new ThreadTest(i + 1).start();
 }
} 
 

 

 


方法二:实现 Runnable 接口
Runnable 接口只有一个方法 run(),我们声明自己的类实现 Runnable 接口并提供这一方法,将我们的线程代码写入其中,就完成了这一部分的任务。但是 Runnable 接口并没有任何对线程的支持,我们还必须创建 Thread 类的实例,这一点通过 Thread 类的构造函数public Thread(Runnable target);来实现。下面是一个例子:

 

public class MyThread implements Runnable {
int count= 1, number;
public MyThread(int num) {
number = num;
System.out.println("创建线程 " + number);
}
public void run() {
while(true) {
System.out.println("线程 " + number + ":计数 " + count);
if(++count== 6) return;
}
}
public static void main(String args[]) {
for(int i = 0; i < 5; i++) new Thread(new MyThread(i+1)).start();
}
} 
 

 

 

运行结果每次不一样!

两种方法各有千秋,可以灵活运用。

 

 

 

分享到:
评论

相关推荐

    java项目史上最简单的多线程使用方法(demo)

    本文将深入探讨Java项目中最简单的多线程使用方法,通过一个名为"thread-test"的示例项目来讲解如何在企业实际场景中应用多线程。 一、Java多线程基础 1. **Thread类与Runnable接口** Java中实现多线程有两种方式...

    java的多线程使用方法

    java多线程的使用方法如何使用,怎么使用,使用过程中有什么要注意的

    C# Timer的多线程使用方法

    这意味着当时间到时,回调方法将在一个不确定的工作线程上运行,不会阻塞UI线程。 - **创建与使用**:使用`new Timer(TimerCallback, Object, DueTime, Interval)`构造函数,其中TimerCallback是触发时调用的方法,...

    0356-极智开发-解读OpenMP多线程使用方法

    0356_极智开发_解读OpenMP多线程使用方法

    C#多线程使用

    以下是对C#多线程使用方法的详细说明: 1. **线程的创建与启动** - **Thread类**:这是最直接的创建线程的方法。通过实例化`Thread`类并传入一个`ThreadStart`委托,指定线程启动时执行的方法。例如: ```csharp ...

    python多线程使用方法实例详解

    本文实例讲述了python多线程使用方法。分享给大家供大家参考,具体如下: threading 模块支持守护线程, 其工作方式是:守护线程一般是一个等待客户端请求服务的服务器。 如果把一个线程设置为守护线程,进程退出时...

    c#多线程学习代码资料

    这篇资料详细讲解了C#中的多线程使用方法,对于初学者来说是一份很好的学习资源。 多线程的基本概念: 1. **线程**:线程是程序执行的最小单元,每个线程都有自己的执行顺序和独立的内存空间。 2. **主线程**:每个...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例)

    - **启动线程**:使用`Start`方法启动线程,线程将开始执行指定的委托。 - **线程状态**:线程有多种状态,如新建、就绪、运行、挂起、停止等,可以通过`Thread.CurrentThread.ThreadState`检查当前线程的状态。 ...

    使用三种VC的多线程同步方法编写一个多线程的程序

    1.使用三种VC的多线程同步方法编写一个多线程的程序(要求在屏幕上先显示Hello,再显示World)。 1)基于全局变量的多线程同步程序; 2)基于事件的多线程同步程序; 3)基于临界区的多线程同步程序。

    线程处理基本方法

    - 暂停线程:使用线程对象的Suspend方法,例如`PushResultThread.Suspend;` - 继续线程:使用线程对象的Resume方法,例如`PushResultThread.Resume;` 线程的自动启动: 为了在整个程序启动时自动启动线程,可以在...

    C# 线程使用总结

    例如,`Join()`方法可以使调用线程等待指定线程完成,而`Abort()`可以强制终止线程,但不推荐使用,因为可能会导致数据不一致。 3. **线程同步** 当多个线程访问共享资源时,可能导致数据竞争。为避免这种情况,C#...

    易语言线程返回数据的方法

    本文将深入探讨易语言中线程返回数据的方法,帮助开发者更好地理解和应用。 一、线程基础知识 线程是操作系统分配处理器时间的基本单元。在易语言中,线程可以用来执行一些耗时但不阻塞主线程的操作,如网络通信、...

    C#开发技术大全_多线程编程

    C#语言能够支持通过多线程实现的并行代码的执行。每一个线程就是一个独立的可执行程序,可以独立地与其他线程同时执行。而多线程编程则可以在一个应用程序中实现多个任务的...最后,将介绍C#中的常见的线程使用方法。

    QT多线程moveToThread使用方式

    可以使用`quit()`方法来停止事件循环,然后等待`wait()`方法返回,确保线程已退出。 在提供的`TestMoveToThread`文件中,可能包含了具体的示例代码,演示了如何创建和使用`moveToThread`方法。这个例子可能包括两个...

    java 多线程同步方法的实例

    在这个例子中,`deposit()`和`withdraw()`方法使用了synchronized关键字,确保同一时间只有一个线程可以进行存款或取款操作。`transfer()`方法则需要对两个账户对象加锁,以确保转账过程是原子性的,避免并发问题。 ...

    3种多线程实现同步方法

    本篇文章将深入探讨三种在C++中实现多线程同步的方法:事件对象、关键代码段和互斥对象。 首先,我们来看**事件对象**。事件对象是一种信号机制,用于线程间通信和同步。在Windows API中,CreateEvent函数创建一个...

    C#多线程学习 Thread类使用 线程等编程方法

    System.Threading命名空间中的Thread类是实现多线程的基础,提供了创建、控制和管理线程的方法。本文将深入探讨C#多线程编程,包括Thread类的使用以及线程同步的相关知识。 ### 1. Thread类介绍 Thread类是C#中处理...

    线程同步方法,和线程创建方法

    线程隶属于进程,线程是属于进程内部的程序流,目前主流的操作系统都支持多进程,而 每一个进程的内部又可以支持多线程; 进程是重量级的,每个进程都需要独立的内存空间等,因此新建进程对系统资源的消耗比 较大; ...

Global site tag (gtag.js) - Google Analytics