java面试之多线程

一、多线程编程简介

1、为什么需要多线程编程

合理利用CPU的空闲时间,来提高程序的性能。

2、进程和线程的关系

一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程是操作系统可识别的最小执行和调度单位。

二、多线程开发简单示例

在烧水的同时干点儿别的事情!此处引入了异步操作,我们可以在等待水被烧开的这段时间内做一些其它的事情,如洗漱、看报纸。这样一来,当完成所有需要完成的事儿时,我们的时间节省了很多!

三、Java实现多线程的基本方式

多线程最基本的实现方式有两种:继承Thread类和实现Runnable接口。此处我们先简单介绍,在后面的文章中我们逐渐深入。Runnable接口中内容很简单,只有一个抽象方法:public abstract void run();而且Thread类也是实现了Runnable接口,此处说明如果想要用实现Runnable接口这种方式,必须得借助Thread来实现。但为什么要这样设计呢?我们知道Java是没有多重继承的,所以如果我们采用继承Thread类的方式来实现多线程,那个这个类就不能在继承别的类了,这显然有些时候不太方便,所以我们可以采用实现Runnable接口。

1、实现Runnable接口

  1. public class MyThread implements Runnable{  
  2.   
  3.     @Override  
  4.     public void run() {  
  5.         for(int i=0; i<20; i++){  
  6.             System.out.println(Thread.currentThread().getName()+"-"+i);  
  7.         }  
  8.     }  
  9.   
  10.     public static void main(String[] args) {  
  11.         Thread t1 = new Thread(new MyThread());  
  12.         Thread t2 = new Thread(new MyThread());  
  13.         t1.start();  
  14.         t2.start();  
  15.     }  
  16. }  
public class MyThread implements Runnable{

	@Override
	public void run() {
		for(int i=0; i<20; i++){
			System.out.println(Thread.currentThread().getName()+"-"+i);
		}
	}

	public static void main(String[] args) {
		Thread t1 = new Thread(new MyThread());
		Thread t2 = new Thread(new MyThread());
		t1.start();
		t2.start();
	}
}

2、继承Thread类

  1. public class MyThread extends Thread{  
  2.   
  3.     @Override  
  4.     public void run() {  
  5.         for(int i=0; i<20; i++){  
  6.             System.out.println(Thread.currentThread().getName()+"-"+i);  
  7.         }  
  8.     }  
  9.   
  10.     public static void main(String[] args) {  
  11.         new MyThread().start();  
  12.         new MyThread().start();  
  13.     }  
  14. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值