当前位置 : 主页 > 编程语言 > java >

多线程测试的第三种方法

来源:互联网 收集:自由互联 发布时间:2021-06-28
通过Callable和Future接口 用Lambda表达式创建 import java.util.concurrent.Callable;import java.util.concurrent.FutureTask;class A { private int i = 0; FutureTask task1 = new FutureTask ((Callable )()-{ System.out.println("第一个进
通过Callable和Future接口 用Lambda表达式创建
import java.util.concurrent.Callable;
import java.util.concurrent.FutureTask;

class A  {
    private int i = 0;
    FutureTask
 
   task1 = new FutureTask
  
   ((Callable
   
    )()->{ System.out.println("第一个进程:"); for (int n =1;n<=10;n++) { i=i+1; System.out.println(i); } return 0; } ); } class B { private int i = 0; FutureTask
    
      task2 = new FutureTask
     
      ((Callable
      
       )()->{ System.out.println("第二个进程:"); for (int n =1;n<=10;n++) { i=i+1; System.out.println(i); } return 0; } ); } class C { private int i = 0; FutureTask
       
         task3 = new FutureTask
        
         ((Callable
         
          )()->{ System.out.println("第三个进程:"); for (int n =1;n<=10;n++) { i=i-1; System.out.println(i); } return 0; } ); } class D { private int i = 0; FutureTask
          
            task4 = new FutureTask
           
            ((Callable
            
             )()->{ System.out.println("第四个进程:"); for (int n =1;n<=10;n++) { i=i-1; System.out.println(i); } return 0; } ); } public class manu { public static void main(String[] args) throws Exception { A a = new A(); B b = new B(); C c = new C(); D d = new D(); new Thread(a.task1).start(); new Thread(a.task1).setPriority(Thread.MAX_PRIORITY); new Thread(b.task2).start(); new Thread(b.task2).setPriority(8); new Thread(c.task3).start(); new Thread(c.task3).setPriority(7); new Thread(d.task4).start(); new Thread(d.task4).setPriority(Thread.MIN_PRIORITY); } }
            
           
          
         
        
       
      
     
    
   
  
 
网友评论