创建线程的方法和使用:
一、继承Thread + run()
启动:创建子类对象 + 对象.start()
二、实现Runnable + run()
启动:使用静态代理
1,创建真实角色
2,创建代理角色 Thread + 引用
3,代理角色.start()
推荐使用接口:
1,避免单继承局限性
2,便于共享资源
//线程
public class Web12306 implements Runnable {
private int num = 50; //所有进程公共使用
@Override
public void run() {
//实现runnable接口,此处逻辑为买票业务,可换成相对应的业务代码
while(true){
if(num < 0){
System.out.println("The ticket sold over!");
break;
}
System.out.println(Thread.currentThread().getName() + "num:" + num--);
}
}
public static void main(String[] args) {
Web12306 web = new Web12306(); //真实角色
//Thread就是一个代理角色,以下可以视为3个代理,帮忙抢票
Thread t1 = new Thread(web, "黄牛甲");
Thread t2 = new Thread(web, "黄牛乙");
Thread t3 = new Thread(web, "刷票软件");
t1.start(); //开启线程
t2.start(); //开启线程
t3.start(); //开启线程
//结束:不同的代理为同一个人办事
}
}
文中所说不到之处请谅解,以后想到更好的例子再补充