1.线程和进程
进程:就是一个程序,比如你打开了QQ、酷狗音乐、快播.....
线程:就是任务,比如你和别人用QQ和别人聊天,用酷狗听音乐,用快播看电影.....
关于单线程和多线程,我听过最俗气的也是最容易理解的就是:“你扫一条大马路,你自己扫叫单线程,你叫别人来帮忙分段扫叫多线程”。一个QQ程序可以同时和很多人聊QQ,一个浏览器可以同是浏览很多网页,但是一个酷狗音乐只能同是播放一首歌,只有当前这首结束或者被中断才可能播放下一首。
2.创建一个简单的线程对象
百度上提供了两种通用的创建简单线程的方法,一种是实现Runnable接口:
①实现Runnable接口MyRunnable
②重写run函数
③实例化一个MyRunnable对象mr,一个Thread对象t,并将mr传入t中
第二种方法是直接构造Thread的子类,重写run函数,创建对象并调用其start函数
困得不行了。。。剩下多线程的控制还有线程的锁定明天早继续
洗洗睡了。。。。。
进程:就是一个程序,比如你打开了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();
}
}
困得不行了。。。剩下多线程的控制还有线程的锁定明天早继续
洗洗睡了。。。。。