_多线程


 

/*
 * 多线程:
 * 	
 * 进程:正在进行中的程序。
 * 		每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者是一个控制单元。
 * 线程:就是进程中的一个独立控制单元,线程在控制着进程的执行。
 * 
 * 一个进程中至少有一个线程。
 * 
 * java vm 	启动的时候会有一个进程:java.exe;
 * 			该进程中至少有一个线程负责java程序的执行;
 * 			而且该线程的代码在main方法中运行,该线程成为主线程。
 * 
 * 扩展:更细节说明JVM启动的不止一个线程,还有负责垃圾回收机制的线程。
 * 
 * 线程的创建:
 * 		
 * 		一:继承Thread,复写run()方法;
 * 			步骤:	1.类继承Thrand ;
 * 					2.复写run()方法 ;
 * 						目的:将要线程要运行的代码写在run()方法中,让线程运行;
 * 					3.实例化类对象 ;
 * 					4.调用start()方法;该方法有两个作用:1.启动线程,2.调用run()方法;
 * 						如果只调用run()方法,则只是对象调用方法,而没有开启线程;
 * 
 * 当多个线程时,cpu把执行权给谁的时候,那个线程运行;
 * 在同一时间,只能有一个程序运行;(多核除外) cpu在瞬间做着快速切换,以达到看上去同时运行;
 * 可以形象的看作多个线程在抢夺cpu的执行权;
 * 多线程的特性:随机性;谁抢到谁执行,至于执行多长时间,cpu决定;
 * 
 * 为什么要复写run()方法?
 * Thread 类用于描述线程;
 * 该类就定义了一个功能,用于存储线程要运行的代码,这个存储功能就是run()方法;
 * 
 * 
 * 	*	*	*	*	*	*	*	*	*	*	*	*
 * 												*		
 * 			main								*
 * 			  |	(main线程)						*
 * 			 \|/								*
 * 			r = new Resources();				*
 * 			r.start();————————————|	(r线程)		*
 * 			  |					  |				*
 *		  	 \|/				 \|/			*
 * 		 "hello main"	 "hello Resources"		*
 * 			  |					  |				*
 *		  						 				* 
 * 	*	*	*	*	*	*	*	*	*	*	*	*
 * 
 * 		二:实现Runnable接口,复写run()方法;
 *   
 * 步骤:
 * 1,定义了实现Runnable接口。
 * 2,覆盖接口的run方法。将多线程要运行的代码存入其中。
 * 3,创建Thread类的对象(创建线程),并将Runnable接口的子类对象作为参数传递给Thread的构造函数。
 *  为什么要传递?因为线程要运行的代码都在Runnable子类的run方法中存储。所以要将该run方法所属的对象
 *  传递给Thread。让Thread线程去使用该对象调用其run方法。
 * 4,调用Thread对象的start方法。开启线程。
*/



 

package com.Thread;
public class ThreadDemo3 {
	public static void main(String[] args) {
		Resources r = new Resources();
		r.start();
		for(int i=0;i<50;i++)
			System.out.println(i+"hello main");
	}
}

class Resources extends Thread {
	int num = 50;

	public void run() {
		while (num > 0) {
			System.out.println(num + "hello Resources");
			num--;
		}
	}
}
</pre><pre class="java" name="code">
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值