创建线程有两种方法:继承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项目中最简单的多线程使用方法,通过一个名为"thread-test"的示例项目来讲解如何在企业实际场景中应用多线程。 一、Java多线程基础 1. **Thread类与Runnable接口** Java中实现多线程有两种方式...
java多线程的使用方法如何使用,怎么使用,使用过程中有什么要注意的
这意味着当时间到时,回调方法将在一个不确定的工作线程上运行,不会阻塞UI线程。 - **创建与使用**:使用`new Timer(TimerCallback, Object, DueTime, Interval)`构造函数,其中TimerCallback是触发时调用的方法,...
0356_极智开发_解读OpenMP多线程使用方法
以下是对C#多线程使用方法的详细说明: 1. **线程的创建与启动** - **Thread类**:这是最直接的创建线程的方法。通过实例化`Thread`类并传入一个`ThreadStart`委托,指定线程启动时执行的方法。例如: ```csharp ...
本文实例讲述了python多线程使用方法。分享给大家供大家参考,具体如下: threading 模块支持守护线程, 其工作方式是:守护线程一般是一个等待客户端请求服务的服务器。 如果把一个线程设置为守护线程,进程退出时...
这篇资料详细讲解了C#中的多线程使用方法,对于初学者来说是一份很好的学习资源。 多线程的基本概念: 1. **线程**:线程是程序执行的最小单元,每个线程都有自己的执行顺序和独立的内存空间。 2. **主线程**:每个...
- **启动线程**:使用`Start`方法启动线程,线程将开始执行指定的委托。 - **线程状态**:线程有多种状态,如新建、就绪、运行、挂起、停止等,可以通过`Thread.CurrentThread.ThreadState`检查当前线程的状态。 ...
1.使用三种VC的多线程同步方法编写一个多线程的程序(要求在屏幕上先显示Hello,再显示World)。 1)基于全局变量的多线程同步程序; 2)基于事件的多线程同步程序; 3)基于临界区的多线程同步程序。
- 暂停线程:使用线程对象的Suspend方法,例如`PushResultThread.Suspend;` - 继续线程:使用线程对象的Resume方法,例如`PushResultThread.Resume;` 线程的自动启动: 为了在整个程序启动时自动启动线程,可以在...
例如,`Join()`方法可以使调用线程等待指定线程完成,而`Abort()`可以强制终止线程,但不推荐使用,因为可能会导致数据不一致。 3. **线程同步** 当多个线程访问共享资源时,可能导致数据竞争。为避免这种情况,C#...
本文将深入探讨易语言中线程返回数据的方法,帮助开发者更好地理解和应用。 一、线程基础知识 线程是操作系统分配处理器时间的基本单元。在易语言中,线程可以用来执行一些耗时但不阻塞主线程的操作,如网络通信、...
C#语言能够支持通过多线程实现的并行代码的执行。每一个线程就是一个独立的可执行程序,可以独立地与其他线程同时执行。而多线程编程则可以在一个应用程序中实现多个任务的...最后,将介绍C#中的常见的线程使用方法。
可以使用`quit()`方法来停止事件循环,然后等待`wait()`方法返回,确保线程已退出。 在提供的`TestMoveToThread`文件中,可能包含了具体的示例代码,演示了如何创建和使用`moveToThread`方法。这个例子可能包括两个...
在这个例子中,`deposit()`和`withdraw()`方法使用了synchronized关键字,确保同一时间只有一个线程可以进行存款或取款操作。`transfer()`方法则需要对两个账户对象加锁,以确保转账过程是原子性的,避免并发问题。 ...
本篇文章将深入探讨三种在C++中实现多线程同步的方法:事件对象、关键代码段和互斥对象。 首先,我们来看**事件对象**。事件对象是一种信号机制,用于线程间通信和同步。在Windows API中,CreateEvent函数创建一个...
System.Threading命名空间中的Thread类是实现多线程的基础,提供了创建、控制和管理线程的方法。本文将深入探讨C#多线程编程,包括Thread类的使用以及线程同步的相关知识。 ### 1. Thread类介绍 Thread类是C#中处理...
线程隶属于进程,线程是属于进程内部的程序流,目前主流的操作系统都支持多进程,而 每一个进程的内部又可以支持多线程; 进程是重量级的,每个进程都需要独立的内存空间等,因此新建进程对系统资源的消耗比 较大; ...