import java.util.Arrays;//1.创建三个线程,分别设置它们不同的优先级,然后比较他们的优先级大小关系。
public class ThreadThree {
public static void main(String[] args) {
IntPrint p1 = new IntPrint(1);
IntPrint p2 = new IntPrint(-1);
IntPrint p3 = new IntPrint(0);

p1.start();
p2.start();
p3.start();
p1.setPriority(1);
p2.setPriority(5);
p3.setPriority(10);
}
}class IntPrint extends Thread {
private int a; public IntPrint(int a) {
this.a = a;
} public  void run() {

if (a > 0) {
System.out.println("n_n111111");
} else if (a == 0) {
System.out.println("@.@333333");
} else if (a < 0) {
System.out.println("·3*222222");
}
}
}这里的问题是 输出根本不按照我设定的优先级 执行run  有时候运行多次 会出现混乱  这是什么问题 如何解决?

解决方案 »

  1.   

    你把设置优先级的句子放start前面去然后要注意你的cpu是不是双核
    双核经常会出现一些异常情况~~再不行
    你不要让IntPrint类继承Thread
    而是实现Runnable接口
      

  2.   

    你把设置优先级的句子放start前面去  -----这个我知道  当时我只是试试 忘记改过来了
    然后要注意你的cpu是不是双核 ----是双核的 难道就是因为这个……
    双核经常会出现一些异常情况~~再不行 
    你不要让IntPrint类继承Thread   --- 我用Runnable 接口试验过了 不行  难道只是因为双核问题嘛……
    而是实现Runnable接口