Java中多线程的使用(一):多线程基本概念

本文介绍了线程的基本概念,指出线程是操作系统调度的最小单位,多线程技术常用于提高任务处理速度。在Java中,多线程可以通过扩展Thread类或实现Runnable接口来创建,推荐使用Runnable接口以实现代码复用。
摘要由CSDN通过智能技术生成

线程的概念

线程(英语:thread)是操作系统能够进行运算调度的最小单位。(百度百科)

可以理解为一个项目中的一个小的任务,在调度层面上,任务不能再分。

多线程的概念

多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理(Chip-level multithreading)或同时多线程(Simultaneous multithreading)处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理(Multithreading)”。(百度百科)

个人一些理解

关于多线程技术,现在用处最多的可能不是用于多个CPU或GPU计算同一个任务(话说这个应该叫并行计算吧,与多线程还是有些区别),更重要的是计算密集型任务和非计算密集型任务的同时处理,从而提高任务总体的处理速度。对于单个CPU而言,并不存在“同时”计算这一概念,看上去同时计算是因为在不同线程之间快速切换的结果,但线程之间切换也是要耗费时间的,所以对单纯的计算密集型任务进行多线程处理不会提高速度,反而会使速度降低。

Java中Thread的创建

Java中,多线程的使用大致有两种方式,一个是用Thread类来进行扩展,二是继承Runnable(不知道为什么java里接口不用I开头)进行实现,两者底层实现没有区别,基本就是Java中类和接口的区别,由于Java中不能继承多个父类,但能同时继承多个接口,推荐使用Runnable接口进行实现(面试题常考,但是其实并没有多复杂)。

继承Thread的线程类:

public class Application {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyThread thread = new MyThread();
		thread.run();
	}
	
	public static class MyThread implements Runnable{
		@Override
		public void run() {
			// TODO Auto-generated method stub
			
		}
	}
}

实现Runable的线程类:

public class Application {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyThread thread = new MyThread();
		thread.run();
	}
	
	public static class MyThread extends Thread{
		@Override
		public void run() {
			// TODO Auto-generated method stub
			
		}
	}
}

当然也有不使用新类的方法,不过不推荐,代码看着乱,而且不能复用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值