Java中实现多线程有两种途径

Java中实现多线程有两种途径:继承Thread类或者实现Runnable接口. Runnable接口非常简单,就定义了一个方法run(),继承Runnable并实现这个 方法就可以实现多线程了,但是这个run()方法不能自己调用,必须由系统来调用,否则就和别的方法没有什么区别了. 先给一个简单的例子:

 public class MultiThread implements Runnable{
 public static void main(String[] args){
    for(int i=0;i<10;i++){
       new Thread(new MultiThread()).start();//correct
                //new Thread(new MultiThread()).run 1
  //new MultiThread().run()      2 
    }
 }
 public void run(){    
    System.out.println(Thread.currentThread().getName());
 }
}

运行后应该启动了10个新的线程,加上主线程一共11个线程,应该输出是Thread-1知道10. 这里要注意启动线程的方式是调用了Thread的start()方法,而不是run方法,如果 用注释里的1或者2输入都是10个main,因为这个时候run()方法还原了,和普通方法一样了. 我们也可以得出一个结论:所有的线程在运行时都是一个Thread实例,虽然可以不用继承Thread 实现多线程,但是最终还是Thread的一个实例.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Python爬虫与数据挖掘

Python正则表达式初识(七)

继续分享Python正则表达式的基础知识,今天给大家分享的特殊字符是“\s”、“\S”,具体的教程如下。

834
来自专栏我的博客

echo、print、print_r、var_dump使用和区别

1、echo — Output one or more strings(输出一个或者多个字符串) 2、print — Output a string(输出一个字...

3037
来自专栏Python研发

configparser模块

751
来自专栏Python小屋

奇怪,Python有的函数调用需要两对括号?(2)

在Python中,允许嵌套定义函数,也就是在一个函数A中可以定义另一个函数B。另外,在Python中,可调用对象可以分为三类:1)函数,2)类,3)含有特殊方法...

3229
来自专栏linjinhe的专栏

Linux常用命令:sort

1516
来自专栏破晓之歌

Typescript入门 原

915
来自专栏ml

hdu 3518 (后缀数组)

  题目描述:   找出一个字符串中至少重复出现两次的字串的个数(重复出现时不能重叠)。   code:      后缀数组处理,对于得到height 进行查找...

3294
来自专栏Java技术栈

Java中的基本数据类型转换(自动、强制、提升)

1813
来自专栏黑白安全

switch语句

多级elseif 显然是用于那些可能需要进行多级判断的情况。如果$a,正好是大于10,只需判断一次,但如果$a小于10那就必须经过“是不是大于10?,是不是等于...

803
来自专栏康怀帅的专栏

Bash 函数详解

默认情况下,脚本中定义的任何变量均为 全局变量,可以在函数内访问。 创建函数 # function关键字创建函数 function func1 { e...

3094

扫码关注云+社区

领取腾讯云代金券