Java多线程

文章介绍了Java中实现多线程的两种方式:通过继承Thread类和实现Runnable接口。Thread类直接继承,而Runnable接口需要与Thread结合使用。虽然多线程看似并行,但在单CPU环境下实际仍是串行执行,可能增加时间成本,但在多处理器系统中能提高效率。
摘要由CSDN通过智能技术生成

1 前言

在年前我定下学习知识点的两个步骤:先通过书本了解一个知识点的用法和功能,再敲代码熟悉该知识点。然而了解知识点后我就懒得去敲代码了,于是过完年后我想到通过写博客简单地记录学到的东西,也方便以后重温,最重要的是没有单纯只为了熟悉知识点而敲代码那么无聊。

2 java多线程

java可以通过继承java.lang包中的Thread类或实现Runnable接口来实现多线程。下面是两种实现方式。

2.1 Thread类

public class son extends Thread {//继承Thread类
	private int name;
	public son(int x){
		name = x;
	}
	public void run() {//覆盖run,run是线程执行的起点
		for(int i = 0; i < 3; i++) {
			System.out.println(name);
		}
	}
}
public class c1 {

	public static void main(String[] args) {
		son son1 = new son(1);
		son son2 = new son(2);
		son1.start();//通过start调用run
		son2.start();
		System.out.println("main");		
	}
}

2.2 Runnable接口

public class son implements Runnable{//实现Runnable接口
	private int name;
	public son(int x){
		name = x;
	}	
	public void run() {//
		for(int i = 0; i < 3; i++) {
			System.out.println(name);
		}
	}
}
public class c1 {
	public static void main(String[] args) {
		son son1 = new son(1);//新建线程
		son son2 = new son(2);
		Thread t1 = new Thread(son1);//调用了构造方法Thread(Runnable target),接口可以看作特殊的类,这里使用了向上转型
		Thread t2 = new Thread(son2);
		t1.start();//通过start调用target.run()
		t2.start();
		System.out.println("main");
	}
}

3 总结

多线程虽然表现为并行运行,但cpu还是串行执行代码的,在只有一个cpu的情况下,多线程的时间成本往往不比单线程低,反而因为创建线程需要额外的开销,但可以通过增加处理器来发挥多线程的优势,实现并发执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值