多线程初步

来源:互联网 发布:青岛广电的网络电视 编辑:程序博客网 时间:2024/05/22 03:07

为了加快系统运行速度,提高系统的相应速度,java提供了多线程技术,开启线程的个数根据可用processor数量合理分配,负责开启过多的线程,线程的上下文切换会消耗很多的资源。

实现代码:

 public class ThreadDemo {private List<String> list = new ArrayList<String>();private void initList(){for(int i = 0 ; i < 200000 ; i++){list.add("abc" + i);}}  public static void main(String[] args) {ThreadDemo client = new ThreadDemo();client.fun();   //client.fun1();    }/** * @Description 使用多线程,最大化使用硬件资源     * */public void fun(){initList();int processorCount = Runtime.getRuntime().availableProcessors();for(int i = 0 ; i < processorCount ; i++){new MyThread(list).start();  }   }  /** * @Description 单线程    * */public void fun1(){initList();while(list.size() > 0){ String result = list.get(0); System.out.println("主线程读取结果:"+ result);  list.remove(0);}}}class MyThread extends Thread{private List<String> list ; public MyThread(List<String> list){this.list = list;}@Overridepublic void run() {while(list.size() > 0){synchronized (list) {if(list.size() == 0){return ;}       long currentThreadId = Thread.currentThread().getId();String result = list.get(0);System.out.println("当前线程标示:" + currentThreadId + ",读取结果:"+ result);list.remove(0);}}}}

0 0
原创粉丝点击