- 浏览: 215831 次
- 性别:
- 来自: 北京
文章分类
我们都知道实现多线程的两种方式,一种是继承Thread类,另一种是实现runnable接口。并用runnable接口的实现类创建线程。
使用Thread实现类来实现多线程的原因。
Thread是代表线程类,当线程运行时执行的是里面的run方法。然后Thread类中的默认的run方法代码如下
public void run() {
if (target != null) {
target.run();
}
}
其中target表示Thread中一个实现Runnable接口的成员变量类。因此默认情况下,new Thread()出的线程执行的时候不会进行任何操作。因此要想让run方法里面运行我们想要的操作。就通过继承Thread类,然后子类重写run方法就可以了。
使用Runnable实现线程的原因
因为Thread的run方法中判断构造方法中是否传入了Runnable实现,默认情况下会传递null给线程的target成员变量。所以可以通过传递target值,然后Thread的run方法就会调用Runnable的实现类的run方法来执行我们自定义的操作逻辑了
使用Thread实现类来实现多线程的原因。
Thread是代表线程类,当线程运行时执行的是里面的run方法。然后Thread类中的默认的run方法代码如下
public void run() {
if (target != null) {
target.run();
}
}
其中target表示Thread中一个实现Runnable接口的成员变量类。因此默认情况下,new Thread()出的线程执行的时候不会进行任何操作。因此要想让run方法里面运行我们想要的操作。就通过继承Thread类,然后子类重写run方法就可以了。
使用Runnable实现线程的原因
因为Thread的run方法中判断构造方法中是否传入了Runnable实现,默认情况下会传递null给线程的target成员变量。所以可以通过传递target值,然后Thread的run方法就会调用Runnable的实现类的run方法来执行我们自定义的操作逻辑了
发表评论
-
JVM启动时指定-Dfile.encoding="UTF8"的作用
2013-10-17 13:50 2384简单来说就是指定JVM默认的编码方式 java io中很多方法 ... -
java多线程 小记
2012-04-15 14:49 0thread join的方法 http://blog.csdn ... -
浅析多线程
2012-04-08 22:35 0线程组 线程是被 ... -
多线程意外中断处理
2012-04-08 20:54 0本文转自:http://peirenlei.iteye.com ... -
多线程项目学习
2012-04-08 20:35 0线程组的作用: ThreadGroup类中的某些方法,可以对线 ... -
java 静态成员变量的内存分配
2012-04-06 10:28 0静态成员变量是属于类变量,即当JVM加载class文件到虚拟机 ... -
深度克隆与浅克隆
2012-04-05 16:31 1171要想实现某个对象的克隆需要该对象实现java.lang.Clo ... -
修改图片大小并添加水印
2012-03-29 13:47 1317import java.awt.*; import java. ... -
JVM的内存分配
2012-03-16 10:06 0Java里的堆(heap)栈(stack)和方法区(metho ... -
HashMap添加数据的过程
2012-03-14 22:18 7130当添加的元素的key为null ... -
几种classloader的加载范围
2012-02-28 12:43 1355Bootstrap class loader:最顶级的clas ... -
利用正则表达式获取网页中多处重复出现的标签数据
2012-02-21 11:21 2735public static void main(String[ ... -
标准的URLConnection请求
2012-01-13 16:39 0只写了主要的代码 URL url = new URL(urlS ... -
常用的ClassLoader的加载范围
2012-01-13 13:53 1431WebAppClassLoader装载器装作文件的范围: 会加 ... -
ClassLoader.getSystemClassLoader().loadClass()和Class.forName()的区别
2012-01-13 13:08 0class A { static { System.ou ... -
httpClient超时解决办法
2012-01-12 16:47 0DefaultHttpClient: 请求超时 httpcli ... -
项目中的使用技巧小记
2012-01-10 21:11 607实现数据在多线程之间的共享: 因为线程的成员变量是各个该线程实 ... -
ThreadLocal
2012-01-10 08:55 1440ThreadLocal是实现线程范围内的数据共享,即不同线程获 ... -
线程加锁优化
2012-01-08 13:19 0实际上,在某些classes中,这种instance方法的同步 ... -
一个简单的socket编程实例
2011-12-28 10:50 1633转正于http://www.cnblogs.com/linzh ...
相关推荐
本篇文章将深入探讨如何利用`Thread`类和`Runnable`接口来实现阶乘计算的多线程解决方案。阶乘计算是数学中的一个概念,对于非负整数n,其阶乘表示为所有小于等于n的正整数的乘积,记作n!。 首先,我们来看如何使用...
这种方式的优点是可以避免因为Java的单继承特性所带来的局限性,使得类可以同时继承其他父类和实现多线程的功能。缺点是相对于直接继承`Thread`类,这种方式稍微复杂一点。 **示例程序** ```java // MyRunnable....
在Java编程语言中,创建线程有两种主要方式:继承`Thread`类和实现`Runnable`接口。由于Java的单继承特性,当一个类需要继承其他类时,就不能再直接继承`Thread`,这时实现`Runnable`接口就成为创建线程的优选方案。...
**二、继承Thread类** 1. 创建一个继承`Thread`的类,如`RandomSquareThread`,并重写`run()`方法。 ```java public class RandomSquareThread extends Thread { @Override public void run() { // 实现画随机...
1. 写两个线程,一个线程打印1-52,另一个线程打印字母A-Z。打印顺序为12A34B56C……5152Z。 学习线程之间的通信协调关系。 2. 使用 runnable 接口实现按两... 使用继承Thread类方式和实现Runnable接口两种方式实现。
#### 一、继承Thread类 1. **定义**: - `Thread`类位于`java.lang`包下,它提供了一种创建线程的方式。 - 要使用这种方式,需要创建一个`Thread`类的子类,并重写其`run()`方法。 2. **示例代码**: ```java ...
继承`Thread`类的方法简洁明了,但在Java中不建议过度使用继承,尤其是为了实现多线程的目的。相比之下,实现`Runnable`接口的方式更加灵活,适用于大多数情况,特别是当一个类已经继承了另一个类的情况下。 #### ...
在Java编程语言中,创建多线程有两种主要的方法:继承`Thread`类和实现`Runnable`接口。这两种方法都是为了使程序能够同时执行多个任务,从而提高效率和响应性。 **1. 继承Thread类** 当一个类直接继承自`Thread`类...
本文将详细讲解如何通过实现`Runnable`接口创建多线程,以及这种方式相较于继承`Thread`类的优势。 一、实现Runnable接口创建多线程 1. **步骤** 当一个类需要继承其他类而不能直接继承`Thread`类时,可以选择...
在 Java 中,创建线程有两种方式:继承 Thread 类和实现 Runnable 接口。这些方式都可以用来创建线程,但它们之间有着一些关键的区别。 继承 Thread 类 继承 Thread 类是 Java 中创建线程的一种方式。这种方式下,...
总之,通过继承`Thread`类创建多线程是Java中一种常见的实现方式,但也有其他方式,比如实现`Runnable`接口或使用`ExecutorService`。每种方法都有其适用场景,开发者应根据需求选择合适的方式。在实际编程中,了解...
在Java中,创建多线程有两种主要的方式:继承`Thread`类和实现`Runnable`接口。这两种方式都是为了实现程序的并发执行,即允许多个任务在同一时间片内交替执行。下面我们将详细讨论这两种方法及其区别。 ### 继承...
在Java编程语言中,创建多线程的方式主要有两种:继承`Thread`类和实现`Runnable`接口。这里我们将深入探讨标题所提及的“继承Thread类构造多线程实例”的方法。 1. **线程基础**: - **线程**是程序中的执行单元...
本篇文档主要探讨了两种实现Java多线程的数据共享方式:通过内部类和实现Runnable接口。以下是对这两种方法的详细解释: 1. **实现Runnable接口**: - **好处**:Java中的`Runnable`接口允许我们将线程逻辑(run()...
有两种主要的方式可以实现多线程:继承`Thread`类和实现`Runnable`接口。这两种方法各有特点,适用于不同的场景。 **继承Thread类** 当一个类直接继承自`Thread`类时,这个类本身就成为一个线程实体。你可以重写`...
Java还提供了其他创建多线程的方式,如实现Runnable接口,以及使用ExecutorService和Callable接口,这些将在后续的讨论中详细阐述。 总结,继承Thread类创建多线程虽然简单直观,但存在局限性,如每个线程都需要有...
本篇将探讨两种在Java中实现多线程数据共享的方式:通过内部类和实现`Runnable`接口。 首先,让我们来看看如何使用`Runnable`接口实现数据共享。`Runnable`接口是Java提供的一种创建线程的方式,它允许我们将线程的...
在Java编程语言中,多线程的实现有多种方式,其中最常见的是通过继承`Thread`类和实现`Runnable`接口。这两种方法各有其特点和适用场景,理解它们之间的区别对于编写高效、可维护的多线程应用至关重要。 ### 继承...
Java提供了两种创建线程的方式:继承Thread类和实现Runnable接口。 1. 继承Thread类创建线程: 当你选择继承Thread类时,你需要创建一个新的类,这个类扩展自Thread类。Thread类已经实现了Runnable接口,所以你不...
在第二种方法中,由于3个Thread对象共同执行一个Runnable对象中的代码,因此可能会造成线程的不安全,比如可能ticket会输出-1(如果我们Syste