java多线程英文_[java]多线程2种实现方法

本文介绍了Java中实现多线程的两种方式:继承Thread类和实现Runnable接口。通过实例展示了如何创建和启动线程,并分析了线程并发执行的特点,强调了使用线程实现并发的高效性。在输出结果中,主线程和子线程交替执行,体现了并发执行的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

线程要点:

英文单词: process

并发与并行的概念:

1 并行指在同一时刻,有多条指令在多个处理器上同时执行

2 并发指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个

进程同时执行的效果。

进程和线程的对比

进程能得到系统资源直接分配,而线程只能依托进程的资源来生存。一个进程可以有多个线程,但是一个线程只能依托于一个进程。同一个进程下的线程的资源是共享的。

当操作系统创建一个进程的时候,必须为改进程分配独立的内存空间,并分配大量的系统资源;但是创建线程则简单的多,因此用多线程来实现高并发比多进程来实现要高效的多。

创建线程的2种方式:

1  使用集成java.lang.Thread类的方法

/**

* 通过继承Thread类来实现多线程,记得要重写run方法

* 用法如下

* @author orangle

*/

publicclassSubThreadTestextendsThread{

@Override

publicvoidrun() {

//重写了run方法,线程的执行体就是整个run方法

//得到整个线程的名称和id的用this就行了

for(inti=0;i<99;i++){

System.out.println("a thread"+this.getName()+":"+this.getId()+"---"+i);

}

}

publicstaticvoidmain(String[] args) {

//开启线程的方法,new出线程,调用start方法就行了

Thread t=newSubThreadTest();

t.start();

//得到主线程的对象使用Thread.currentThread()就行了

for(inti=0;i<99;i++){

System.out.println("main thread"+Thread.currentThread().getName()+":"+Thread.currentThread().getId()+"---"+i);

}

}

}

2 实现runnable接口的方法

/**

* 这次使用的是Runnable接口来实现多线程

* 子线程的线程体就是重写的run方法

* @author orangle

*/

publicclassRunnableTestimplementsRunnable{

@Override

publicvoidrun() {

// 重写了run方法,线程的执行体就是整个run方法

// 得到整个线程的名称和id要用Thread.currentThread()方法哦

for(inti =0; i <99; i++) {

System.out.println("a thread"+ Thread.currentThread().getName() +":"+ Thread.currentThread().getId()

+ "---"+ i);

}

}

publicstaticvoidmain(String[] args) {

// 开启线程的方法,new出线程,使用Thread构造出新的线程,调用start方法

SubThreadTestt = newSubThreadTest();

Thread t1=newThread(t,"线程1");

t1.start();

// 得到主线程的对象使用Thread.currentThread()就行了

for(inti =0; i <99; i++) {

System.out.println("main thread"+ Thread.currentThread().getName()

+ ":"+ Thread.currentThread().getId() +"---"+ i);

}

}

}

输出结果片段:

a threadThread-0:8---54

main threadmain:1---61

main threadmain:1---62

a threadThread-0:8---55

main threadmain:1---63

main threadmain:1---64

main threadmain:1---65

main threadmain:1---66

main threadmain:1---67

a threadThread-0:8---56

a threadThread-0:8---57

a threadThread-0:8---58

main threadmain:1---68

main threadmain:1---69

main threadmain:1---70

main threadmain:1---71

main threadmain:1---72

main threadmain:1---73

main threadmain:1---74

a threadThread-0:8---59

我们发现主线程和子线程是交替执行的,并且每次每个线程得到的执行时间也是不同的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值