多线程——继承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 ...
随机推荐
- ios开发runtime学习四:动态添加属性
#import "ViewController.h" #import "Person.h" #import "NSObject+Property.h& ...
- jquery获取选中select的文本,值等
jquery获取select选择的文本与值获取select :获取select 选中的 text : $("#ddlregtype").find("option:s ...
- Navigation Pane不能设置显示标题
https://msdn.microsoft.com/VBA/Word-VBA/articles/view-showheading-method-word https://social.msdn.mi ...
- 不使用left-join等多表关联查询,只用单表查询和Java程序,简便实现“多表查询”效果
上次我们提到,不使用left-loin关联查询,可能是为了提高效率或者配置缓存,也可以简化一下sql语句的编写.只写单表查询,sql真得太简单了.问题是,查询多个表的数据还是非常需要的. 因此,存在这 ...
- @RequiresPermissions 解释
@RequiresAuthentication 验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时. @RequiresUser 验证用户是否被记忆,us ...
- [Vue] Get up and running with vue-router
How do we set up a simple app with its own routes with their own components in Vue? Install: npm i - ...
- MySQL经常使用的面试题
1.怎样登陆mysql数据库 MySQL -u username -p 2.怎样开启/关闭mysql服务 service mysql start/stop 3.查看mysql的状态 service m ...
- .NET Core微服务之路:不断更新中的目录 (v0.43)
原文:.NET Core微服务之路:不断更新中的目录 (v0.43) 微服务架构,对于从事JAVA架构的童鞋来说,早已不是什么新鲜的事儿,他们有鼎鼎大名的Spring Cloud这样的全家桶框架支撑, ...
- Redis+Mysql模式和内存+硬盘模式的异同
http://www.open-open.com/lib/view/open1346029825942.html 学习任何新知识,都是一个循序渐进的过程,从刚开始的懵懂无知,到简单熟悉,然后突然的彻悟 ...
- python io操作
一次性读取 # 读取文件 # 默认打开文件的方式是只读 file = None try: file = open("f:/test.sql") print(file.name) # ...