多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;/*** ### 作業5:* 請利用線程間通信, 完成連續打印1-100的數字, 要求一條線程專門打印奇數,另外一條專門用來打印偶數* **要求**:* 1:使用線程池完成** @author silence*/
public class Demo1 {public static void main(String[] args) {ThreadPoolExecutor thread = new ThreadPoolExecutor(5,5,5,TimeUnit.SECONDS,new ArrayBlockingQueue<>(10),Executors.defaultThreadFactory(),new ThreadPoolExecutor.AbortPolicy());RunnableA runnableA = new RunnableA();thread.submit(runnableA);thread.submit(runnableA);thread.shutdown();}
}
 
import java.util.concurrent.locks.ReentrantLock;/*** @author  silence*/
public class RunnableA implements Runnable {private static final ReentrantLock LOCK = new ReentrantLock();private static int number = 0;@Overridepublic void run() {while (true) {LOCK.lock();try {if (number == 100) {break;}//1線程打印奇數 2線程打印偶數String name = Thread.currentThread().getName();if (number % 2 == 0) {if ("pool-1-thread-1".equals(name)) {System.out.println("我是" + name + "線程,我打印奇數" + ++number);}} else {if ("pool-1-thread-2".equals(name)) {System.out.println("我是" + name + "線程,我打印偶數" + ++number);}}} finally {LOCK.unlock();}}}
}
                            
                        
                        
                        總結
以上是生活随笔為你收集整理的多线程完成连续打印1-100的数字, 要求一条线程专门打印奇数,另外一条专门用来打印偶数的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: benser.exe是什么进程 bens
 - 下一篇: 微信零钱通存100万不用上班了吗?存10