关于多线程的第一课

之间接触到的程序多是单线程,也就是一个程序在一个时间段内只能做一件事情,但是在现实中往往需要一个程序在同一时间段内做多件事情,比如在聊天同时还可以听歌或者下载。这就需要用到多线程。那什么是线程呢,它与进程又有什么不同呢,如何实现多线程呢,这就是今天多线程的第一课,在此小小总结。

 

进程可以理解为一个应用程序。一个进程可以包含多个线程,而这多个线程里的数据是共享的。因此可以说,线程是一个进程内多个并行的运行单位,同一个进程内的多个线程共享同一个内存。但运行多个进程时,内存分成多份且各个进程相互独立。

 

其中需要注意的几点是:

1、  进程是一个拥有资源的独立单位,可以拥有自己的资源。线程则不拥有自己的资源,只能访问进程的资源。同一个进程内的多个线程可以共享这个进程的资源。

2、  在创建一个进程时,系统会为它分配内存区域,而线程则不用,因为它使用的是进程的资源。

3、  Java中可以把main()函数看做一个主线程,在运行时,如果主函数中还包含其他线程,则会交替执行主线程和其他线程。

 

    关于实现多线程的方法,可以通过通过继承Thread类来实现,主要有以下三步:

1、创建一个子类来继承Thread 线程类。

2、重写父类中的public void run()方法。

3、调用start()方法(非阻塞方法)来启动线程。

   

    下面是一个继承Thread类实现多线程的简单实例以及运行结果:

public class ThreadTest extends Thread{

	public static void main(String[] args){
		ThreadTest tt1 = new ThreadTest("张三");//创建线程
		tt1.start();//启动线程
		
		ThreadTest tt2 = new ThreadTest("李四");
		tt2.start();
		
		ThreadTest tt3 = new ThreadTest("王五");
		tt3.start();
	}

	private String name;
	public ThreadTest(String name){
		this.name = name;
	}
	
	/**
	 * 重写run()方法,注意此方法中不可传参
	 * 可通过构造器传参
	 */
	public void run(){
		study(name);
	}
	
	public void study(String name){
		while(true){
		System.out.println(name+"正在学习。。。");
		}
	}
}

 

 

<!--StartFragment -->

这里显示的只是运行结果的部分,但是可以看出三个线程并不是按照顺序依次执行完成的,而是分时多工来执行。

 

 

这是多线程的第一课,多线程还有其他什么特性,是否还有别的实现方法,这是后面会要总结的内容,期待下一课~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值