多线程——继承Thread类别
详细java此前使用多线程,让我们来看看下面的问题。
什么是多线程
简单的理解成:cpu“同一时候”运行多个任务,这就是多线程。
(究其本质,当涉及到进程和线程的概念。上面的说法也不太合适,只是。简单的理解成这样也不为过。)
多线程攻克了什么问题?
多线程通过充分利用cpu实现了提高计算机效率的问题。
使用了多线程,效率就一定会提高?
答案是否定的。在适当的情况下使用多线程,确实能提高效率,可是假设滥用多线程,有时候效率反而会减少。那么,什么情况下使用多线程会提高效率就成为了一个至关重要的问题。想真正弄清楚这个问题。就必需要明确操作系统中cpu的调度原理。还有,最好要清楚你使用的计算机有几个cpu。每一个cpu是几核的。这在推断启用多少个线程时起着至关关键的数据。
多线程不是万能的,可是没有多线程是万万不能的。
所以,多线程是我们须要掌握的知识。可是,知道什么时候用多线程远比知道怎样用多线程更为重要。这也就是“不怕不知道,就怕不知道”的一个实例化对象。
以下就让我们看看java中是怎样使用多线程的。
java中创建线程有三种方法
1、直接继承Thread类。并重写它的run方法
2、实现Runnable接口。并实现它的run方法
3、实现Callable接口,并实现它的call方法
这篇博客,我们以一个实例来介绍一下第一种方法——继承Thread类。
有一个字符串数组,如今我们要使用多线程分别打印出数组中各字符串的长度。
详细代码例如以下:
<span style="font-family:Microsoft YaHei;font-size:18px;">public class Test extends Thread{ private String word; public Test(String word){
this.word = word;
} @Override
public void run() {
System.out.println(Thread.currentThread().getName() + ": 開始运行!" );
try {
//如果处理须要2秒
Thread.currentThread().sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName() + ": 正在处理!" );
System.out.println(Thread.currentThread().getName() + ": " + word + "长度为:" + word.length());
} public static void main(String [] args ) {
String [] words = {"first","second","world","thread"};
for(String word : words){
Test test = new Test(word);
test.start();
}
}
}</span>
运行结果例如以下:
<span style="font-family:Microsoft YaHei;font-size:18px;">Thread-1: 開始运行! Thread-2: 開始运行! Thread-3: 開始运行。
Thread-0: 開始运行! Thread-2: 正在处理!
Thread-2: world长度为:5
Thread-1: 正在处理。
Thread-1: second长度为:6
Thread-3: 正在处理。
Thread-0: 正在处理!
Thread-3: thread长度为:6
Thread-0: first长度为:5</span>
使用这样的方式实现多线程,简单、便捷,可是它要求使用类继承Thread类。而java中同一个类不能同一时候继承多个类。这就给操作带来了不便。同一时候。这样的方式也不能达到数据共享的目的。至于怎样实现数据共享,待下篇博客介绍。
版权声明:本文博客原创文章,博客,未经同意,不得转载。
多线程——继承Thread类别的更多相关文章
- (转)多线程——继承Thread 类和实现Runnable 接口的区别
java中我们想要实现多线程常用的有两种方法,继承Thread 类和实现Runnable 接口,有经验的程序员都会选择实现Runnable接口 ,其主要原因有以下两点: 首先,java只能单继承,因此 ...
- Java中实现多线程继承Thread类与实现Runnable接口的区别
Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过实现Runnable接口,实例化Thread类 在实际应用中, ...
- 多线程——继承Thread类实现一个多线程
继承Thread类实现一个多线程 Thread类部分源码: package java.lang; //该类实现了Runnable接口 public class Thread implements Ru ...
- java多线程技能-使用多线程-继承Thread类
/* 使用多线程可通过继承Thread类或实现Runnable接口. Thread和Runnable的关系:public class Thread implements Runnable. 使用thr ...
- 多线程——继承Thread 类和实现Runnable 接口的区别
java中我们想要实现多线程常用的有两种方法,继承Thread 类和实现Runnable 接口,有经验的程序员都会选择实现Runnable接口 ,其主要原因有以下两点: 首先,java只能单继承,因此 ...
- java 多线程 继承Thread和实现Runnable的区别
1)继承Thread: public class ThreadTest extends Thread { private int count; private String name; public ...
- 0125 多线程 继承Thread 练习
//定义一个继承Thread类的类,并覆盖run()方法,在run()方法中每隔100毫秒打印一句话public class Csh extends Thread{ public void run() ...
- 多线程实现的方式一继承Thread
实现方法一:继承Thread类 package thread; /** * @function 多线程继承Thread类 * @author hj */ public class Threads ex ...
- Java通过继承thread类与实现Runnable接口实现多线程的区别
Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过实现Runnable接口,实例化Thread类 一.通过继承T ...
随机推荐
- php 转义html标签 反转html标签 符号
$a = '<strong>123</strong>'; //假设这是html代码$b = htmlspecialchars($a); //将< ...
- PHP中出现BOM字符\ufeff,PHP去掉诡异的BOM \ufeff
研究一个PHP项目的时候,今天项目突然打不开了. 前几天还好好的,用Chrome看了下Response的内容,AJAX页面和普通HTML页面内容前面有一个红色的点. 鼠标移上去,提示"\uf ...
- 魔兽争霸war3心得体会(三):UD内战
最近,经常匹配到UD内战.有输有赢,有的时候,自己双矿经济,人口优势巨大,却很遗憾地输掉比赛. 本文,简要分析下 对战过程. 前期狗流开局, 5只狗,一只出去骚扰,攻击商店,防止对方科技蜘蛛骚扰我.二 ...
- python高级学习目录
1. Linux介绍.命令1.1. 操作系统(科普章节) 1.2. 操作系统的发展史(科普章节) 1.3. 文件和目录 1.4. Ubuntu 图形界面入门 1.5. Linux 命令的基本使用 1. ...
- NET WinForm 开发所见即所得的 IDE 开发环境
Github 开源:使用 .NET WinForm 开发所见即所得的 IDE 开发环境(Sheng.Winform.IDE)[2.源代码简要说明] GitHub:https://github.co ...
- js判断是否微信客户端
上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 apk 的下载地址,用户点击下载按钮可以下载此 apk.然后就发生了问题,经过测试,发现用微信扫一扫打 ...
- Android的NDK开发(1)————Android JNI简介与调用流程
1.JNI简介 JNI全称为Java Native Interface(Java本地调用).从Java1.1开始,JNI成为java平台的一部分,它允许Java代码和其他语言写的代码(如C&C ...
- PHP数组foreach循环如何实现逆序访问?
PHP数组foreach循环如何实现逆序访问? 一.总结 1.array_reverse($array) :foreach(array_reverse($array) as $key=>$val ...
- 使用jquery-validationEngine框架,4步实现前端JS校验
第1步: 引入CSS和JS <script type="text/javascript" src="${base}/static/js/frontback ...
- [javase学习笔记]-7.5 构造函数须要注意的几个细节
这一节我们简单的说几个在使用构造函数时须要注意的细节. 通过我们前几节的学习,我们对构造函数有了一个比較清楚的认识,当我们在创建对象时.我们会调用构造函数.那么我们在定义和调用构造函数时.须要注意哪些 ...