java多线程例子
??
????? 需求:
???????? 用多线程去获得一个网站取得的数据,网站数据分页显示,一个线程读取几页。通过构造函数把读取的开始页数赋值。
?
?
public class SelectPhone extends Thread{int a = 0; //这里无需担心多线程安全的问题,因为这里是多实例的,在main函数 //中生成的是5个对象,而不是想Spring注入那样共用一个实例。所以每个实例的a都不同public SelectPhone(int flag){a = flag;};public static void main(String[] args){ SelectPhone s = new SelectPhone(0); SelectPhone s1 = new SelectPhone(2); SelectPhone s2 = new SelectPhone(5); SelectPhone s3 = new SelectPhone(8); SelectPhone s4 = new SelectPhone(11); System.out.println("a="+s.a); System.out.println("a="+s1.a); System.out.println("a="+s2.a); System.out.println("a="+s3.a); System.out.println("a="+s4.a); //这里相继输出0,2,5,8,11, s.start(); s1.start(); s2.start(); s3.start(); s4.start();}public void run(){?? System.out.println("begin"+System.currentTimeMillis()+"~~~~"+a);?? String returnStr = null;?? String searchStr[] = new String[750];? ?? System.out.println("a="+a); //最后输出的结果可能为a=2,a=0,a=8,a=11,a=5这种不按顺序的,for(int page=a;page<a+3;page++) 因为不一定哪个线程会先执行到这里{ ................ } } }?
?
?
另附一遍详解java多线程性能的文章
?
java多线程性能浅析 - 一篇把线程描述得很形象的文章?
今天看见je上一帖,对于上亿数据求和的算法,采用多线程到底快还是慢,我认为需要按情况而定。?
?
?
?
?
?
?
?