⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadpool.java

📁 简单的视频上传系统
💻 JAVA
字号:
package cn.com.csuinfosoft.test;

import java.util.LinkedList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadPool {

	private Thread[] threads = null;
	
	private int maxThreadNum = 0;
	
	private LinkedList<Runnable> queue = null;
	
	
	public ThreadPool(int argMaxNum) {
		maxThreadNum = argMaxNum;
		threads = new Thread[maxThreadNum];	//构造线程池中的线程数组
		Thread thread = null;
		for(int i = 0; i < maxThreadNum; i++) {
			thread = new MyThread();
			thread.setDaemon(true);	//后台线程
			thread.start();
			threads[i] = thread;
		}
		queue = new LinkedList<Runnable>();
	}
	
	public void execute(Runnable runnable) {
			queue.add(runnable);
			queue.notify();
	}
	
	private class MyThread extends Thread {
		
		public void run() {
			while(true) {
				synchronized(queue) {
					try {
						queue.wait();	//形成阻塞,等待Execute方法中调用notify唤醒
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
					
					Runnable r = queue.remove(0);	//从队列中获取一个待执行的Runnable实例
					r.run();
				}
			}
		}
		
	}
	
	
	public static void main(String args[]) {
		/*JDK1.5 线程池服务类*/
		//10---对应线程池中 线程数量
		ExecutorService executor = Executors.newFixedThreadPool(10);
		
		Runnable runnable = new MyRunnable();
		Runnable runnable2 = new MyRunnable();
		Runnable runnable3 = new MyRunnable();
		Runnable runnable4 = new MyRunnable();
		executor.execute(runnable);
		executor.execute(runnable2);
		executor.execute(runnable3);
		executor.execute(runnable4);
		
		executor.shutdown();	//销毁线程池中所有的线程资源
		
	}
	
}

class MyRunnable implements Runnable {

	public void run() {
		System.out.println("DragLong...Madiadia");
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -