zoukankan      html  css  js  c++  java
  • 用线程池开启两个线程遍历

    package com.psd.test;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.TimeUnit;
    
    import org.junit.Test;
    
    public class ThreadDemo {
    	// 使用线程池,长度为2
    	private final static ExecutorService pool = Executors.newFixedThreadPool(2);
    	final long waitTime = 8 * 1000;
    	final static long awaitTime = 5 * 1000;
    
    	// 对于100个数,开启你两个线程遍历
    
    	// 定义一个内部线程类
    	class CountThread implements Runnable {
    		private long a;
    
    		public CountThread(long a) {
    			super();
    			this.a = a;
    		}
    
    		@Override
    		public void run() {
    			long count = 0;
    			for (int i = 0; i < a; i++) {
    				count = count + i;
    				for (int j = 0; j < a; j++) {
    					count = count + j;
    
    				}
    			}
    			System.err.println(count + Thread.currentThread().getName() + new Date());
    		}
    
    	}
    
    	@Test
    	public void test02() {
    		// 比如,要去干封装好的同样的事情
    		// 比如有100个数打印
    		// 如何让两个线程干这件事呢
    		List<Runnable> runnables = new ArrayList<Runnable>();
    		CountThread runnable3 = new CountThread(100000);
    		CountThread runnable1 = new CountThread(100000);
    		CountThread runnable2 = new CountThread(100000);
    		runnables.add(runnable3);
    		runnables.add(runnable1);
    		runnables.add(runnable2);
    		for (Runnable runnable : runnables) {
    			pool.execute(runnable);
    		}
    		pool.shutdown();
    	}
    
    	// 方法测试
    	public static void main(String[] args) {
    		System.err.println(Thread.currentThread().getName() + new Date());
    		ThreadDemo threadDemo = new ThreadDemo();
    		threadDemo.test02();
    	}
    
    	public void test03() {
    		this.test04(100000);
    		this.test04(100000);
    		this.test04(100000);
    
    	}
    
    	public void test04(long a) {
    		long count = 0;
    		for (int i = 0; i < a; i++) {
    			count = count + i;
    			for (int j = 0; j < a; j++) {
    				count = count + j;
    
    			}
    		}
    		System.err.println(count);
    	}
    
    }
    

      

  • 相关阅读:
    1442. Count Triplets That Can Form Two Arrays of Equal XOR
    1441. Build an Array With Stack Operations
    312. Burst Balloons
    367. Valid Perfect Square
    307. Range Sum Query
    1232. Check If It Is a Straight Line
    993. Cousins in Binary Tree
    1436. Destination City
    476. Number Complement
    383. Ransom Note
  • 原文地址:https://www.cnblogs.com/liushisaonian/p/8681629.html
Copyright © 2011-2022 走看看