首页 > 编程 > Java > 正文

Java并发程序入门介绍

2019-11-26 15:14:47
字体:
来源:转载
供稿:网友

今天看了看Java并发程序,写一写入门程序,并设置了线程的优先级。

class Elem implements Runnable{  public static int id = 0;  private int cutDown = 5;  private int priority;    public void setPriority(int priority){    this.priority = priority;  }    public int getPriority(){    return this.priority;  }  public void run(){    Thread.currentThread().setPriority(priority);    int threadId = id++;    while(cutDown-- > 0){      double d = 1.2;      while(d < 10000)        d = d + (Math.E + Math.PI)/d;      System.out.println("#" + threadId + "(" + cutDown + ")");    }  }}public class Basic {  public static void main(String args[]){    for(int i = 0; i < 10; i++){      Elem e = new Elem();      if(i == 0 )        e.setPriority(Thread.MAX_PRIORITY);      else        e.setPriority(Thread.MIN_PRIORITY);      Thread t = new Thread(e);      t.start();    }  }}

由于机器很强悍,所以先开始并没看到并发的效果,感觉是按顺序执行的,所以在中间加了浮点数的运算来延迟时间。

当然,main函数里面可以用Executors来管理线程。

import java.util.concurrent.*;class Elem implements Runnable{  public static int id = 0;  private int cutDown = 5;  private int priority;    public void setPriority(int priority){    this.priority = priority;  }    public int getPriority(){    return this.priority;  }  public void run(){    Thread.currentThread().setPriority(priority);    int threadId = id++;    while(cutDown-- > 0){      double d = 1.2;      while(d < 10000)        d = d + (Math.E + Math.PI)/d;      System.out.println("#" + threadId + "(" + cutDown + ")");    }  }}public class Basic {  public static void main(String args[]){//    for(int i = 0; i < 10; i++){//      Elem e = new Elem();//      if(i == 0 )//        e.setPriority(Thread.MAX_PRIORITY);//      else//        e.setPriority(Thread.MIN_PRIORITY);//      Thread t = new Thread(e);//      t.start();//    }    ExecutorService exec = Executors.newCachedThreadPool();    for(int i = 0; i < 10; i++){      Elem e = new Elem();      if(i == 0 )        e.setPriority(Thread.MAX_PRIORITY);      else        e.setPriority(Thread.MIN_PRIORITY);      exec.execute(e);    }    exec.shutdown();  }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表