线程基础(1)


1.线程和进程
  进程:就是一个程序,比如你打开了QQ、酷狗音乐、快播.....
  线程:就是任务,比如你和别人用QQ和别人聊天,用酷狗听音乐,用快播看电影.....
关于单线程和多线程,我听过最俗气的也是最容易理解的就是:“你扫一条大马路,你自己扫叫单线程,你叫别人来帮忙分段扫叫多线程”。一个QQ程序可以同时和很多人聊QQ,一个浏览器可以同是浏览很多网页,但是一个酷狗音乐只能同是播放一首歌,只有当前这首结束或者被中断才可能播放下一首。

2.创建一个简单的线程对象
  百度上提供了两种通用的创建简单线程的方法,一种是实现Runnable接口:
  ①实现Runnable接口MyRunnable
  ②重写run函数
  ③实例化一个MyRunnable对象mr,一个Thread对象t,并将mr传入t中
/**
 * 用实现Runnable方法创建线程类
 * @author Admin
 *
 */
public class PointRunnable implements Runnable{
	public String name ;
	public PointRunnable(String name){	
		this.name = name ;
	}
	/**
	 * 重写run函数
	 */
	public void run(){
		System.out.println("实现Runnable类型的"+name+"start!");
		try{
			Thread.sleep(500);
		}catch(Exception e){
		}
        System.out.println("休息了500ms之后的"+name);	
	}
        public static void main(String[] arg){
                //使用实现接口Runnable创建线程对象
	        PointRunnable pr1 = new PointRunnable("Thread1 ");
	        Thread myt1 = new Thread(pr1);
	        myt1.start();
	        PointRunnable pr2 = new PointRunnable("Thread2 ");
	        Thread myt2 = new Thread(pr2);
	        myt2.start();
        }
}

	



  第二种方法是直接构造Thread的子类,重写run函数,创建对象并调用其start函数


/**
 * 继承Thread实现线程
 * @author Admin
 *
 */
public class PointThread extends Thread{
	public String name ;
	public PointThread(String name){
		this.name = name ;
	}
	/**
	 * 重写run函数
	 */
	public void run(){
		System.out.println("继承Thread的线程"+name+"start!");
		try{
			Thread.sleep(500);
		}catch(Exception e){
		}
        System.out.println("休息了500ms之后的"+name);	
	}
        public static void main(String[] arg){
                //使用创建Thread子类实现创建线程对象
	        PointThread pt1 = new PointThread(g,"Thread1 ");
	        pt1.start();
	        PointThread pt2 = new PointThread(g,"Thread2 ");
  	        pt2.start();
        }
}	



困得不行了。。。剩下多线程的控制还有线程的锁定明天早继续
洗洗睡了。。。。。

你可能感兴趣的:(线程)