`

线程并发库的应用

阅读更多
/**
 * ThreadPoolTest.java
 * cn.com.songjy.test.socket.thread
 * Function: TODO 
 *
 *   version    date      author
 * ──────────────────────────────────
 *   	1.0	 2013-8-17    songjy
 *
 * Copyright (c) 2013, TNT All Rights Reserved.
 */

package cn.com.songjy.test.socket.thread;

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

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * ClassName:ThreadPoolTest java5线程并发库的应用
 * 
 * @author songjy
 * @version 1.0
 * @since v1.0
 * @Date 2013-8-17 下午2:31:49
 */

public class ThreadPoolTest {

	private static Log log = LogFactory.getLog(ThreadPoolTest.class);

	public static void main(String[] args) {
		// ExecutorService thread_pools = Executors.newFixedThreadPool(3);// 创建固定线程池,每次只执行3个任务,其他等待
		// ExecutorService thread_pools = Executors.newCachedThreadPool();//自动创建和回收线程,来多少任务,就创建多少线程
		ExecutorService thread_pools = Executors.newSingleThreadExecutor();// 单个线程,不管来多少任务,每次只有一个线程执行任务
		for (int i = 0; i < 10; i++) {
			final int task = i;
			thread_pools.execute(new Runnable() {

				@Override
				public void run() {
					for (int i = 0; i < 10; i++) {// 每个任务循环10次
						log.info(Thread.currentThread().getName()
								+ " is looping of " + i + " task of " + task);
						try {
							Thread.sleep(20);
						} catch (InterruptedException e) {
							log.error(e.getMessage(), e);
						}
					}
				}
			});
		}

		log.info("all of 10 tasks have commited");
		thread_pools.shutdown();// 等待所有任务完毕后关闭
		// thread_pools.shutdownNow();//立即关闭

		// 线程池调度5秒后执行
		Executors.newScheduledThreadPool(3).schedule(new Runnable() {

			@Override
			public void run() {
				log.info("bombing");

			}
		}, 5, TimeUnit.SECONDS);
		
		// 线程池调度6秒后执行,且每隔2秒循环执行
		Executors.newScheduledThreadPool(3).scheduleAtFixedRate(new Runnable() {

			@Override
			public void run() {
				log.info("bombing");

			}
		}, 6, 2, TimeUnit.SECONDS);
	}

}


java1.5线程并发库的应用

Java 并发 – 第七部分:Executors 与线程池
  • 大小: 175.5 KB
  • 大小: 211.5 KB
  • 大小: 222.9 KB
分享到:
评论

相关推荐

    Java多线程与并发库高级应用

    并发库高级应用\多线程\Java

    JDK5中的多线程并发库

    在JDK5中,多线程并发库引入了一系列新的特性,极大地增强了Java处理并发问题的能力。以下是关于这个主题的详细解释: 1. **线程**: - **线程与进程的关系**:进程是一个正在执行的程序实体,而线程是进程内部的...

    JDK5中的多线程并发库.doc

    在JDK5中,Java引入了一套强大的多线程并发库,极大地提升了多线程编程的效率和安全性。这个库提供了丰富的类和接口,使得开发者能够更好地控制线程的执行、同步和通信。 1. **线程** - **线程与进程的关系**:...

    笔记_张孝祥_Java多线程与并发库高级应用

    张孝祥Java多线程与并发库高级应用学习笔记,很经典的学习多线程和并发的资料。张孝祥Java多线程讲义笔记由张孝祥亲自整理,很实用的。

    Java 模拟线程并发

    Java 模拟线程并发是编程领域中的一个重要概念,尤其在多核处理器和高并发应用中,理解并熟练掌握线程并发技术对于提升程序性能至关重要。在Java中,线程并发可以通过多种方式实现,包括继承Thread类、实现Runnable...

    Java多线程与并发库高级应用视频教程22集

    资源名称:Java多线程与并发库高级应用视频教程22集资源目录:【】01传统线程技术回顾【】02传统定时器技术回顾【】03传统线程互斥技术【】04传统线程同步通信技术【】04传统线程同步通信技术_分割纪录【】05线程...

    张孝祥Java多线程与并发库高级应用笔记

    Java5线程并发库的应用 - **高级特性**:包括`ExecutorService`、`Future`、`Semaphore`、`CountDownLatch`、`CyclicBarrier`、`Exchanger`等工具,提供了更灵活、强大的线程调度和控制机制。 - **优势**:减少...

    基于Qt的多线程并发服务器

    "基于Qt的多线程并发服务器"是一个典型的解决方案,它利用了Qt库的强大功能,特别是其对多线程的支持,来处理来自多个客户端的并发请求。下面我们将深入探讨这个主题。 首先,Qt是一个跨平台的应用程序开发框架,...

    Tesseract OCR多线程并发识别案例

    在处理大量图像或需要快速响应时间的应用场景中,多线程并发识别可以显著提升效率。以下将详细介绍如何利用Tesseract OCR实现多线程并发识别,以及可能涉及的相关技术点。 首先,理解Tesseract OCR的基本工作原理是...

    张孝祥Java多线程与并发库高级应用视频教程练习代码

    本教程的焦点在于“张孝祥Java多线程与并发库高级应用视频教程”的实践代码,旨在帮助开发者深入理解并熟练掌握这些关键概念。 首先,我们要明确多线程的概念。在单处理器系统中,多线程允许程序同时执行多个任务,...

    JAVA多线程并发编程

    线程并发的使用可以显著提升程序处理能力,例如在服务器端处理大量用户请求时,如果每个请求都由单独的线程处理,那么处理速度将大大提高。但同时,多线程并发也会引入一些问题,如数据竞争和同步问题。 为了解决...

    经典Java多线程与并发库高级应用

    在深入探讨Java多线程与并发库的高级应用前,有必要了解一些基础概念。Java线程是Java程序的基础,它代表程序中的一条执行线索或线路。在Java中创建线程有两种传统方式,一种是通过继承Thread类并覆盖其run方法来...

    自用ppt-2012-11-11java线程并发库

    总的来说,Java线程并发库是Java程序员必备的知识点,它提供了强大且灵活的工具来处理并发问题,使得开发者能够编写出高效、可扩展的多线程应用。深入理解这些概念和类,对于优化Java应用的性能至关重要。

    多线程 高并发

    这里,我们主要探讨的是如何通过编写多线程并发程序来优化应用程序的性能,提高系统的处理能力。 首先,多线程是指在一个进程中同时执行多个线程。线程是操作系统调度的基本单位,它允许程序同时执行多个任务。多...

    java并发库高级应用源码--张孝祥

    在《java并发库高级应用源码--张孝祥》中,我们将会深入探讨Java中的线程管理和并发控制策略,这对于我们理解和优化多线程程序至关重要。 首先,Java中的`Thread`类是实现并发的基础,它代表了一个独立的执行线程。...

    MultiHttp高性能的PHP封装的HTTPRestful多线程并发请求库

    "MultiHttp高性能的PHP封装的HTTPRestful多线程并发请求库" 这个标题揭示了几个关键的IT知识点: 1. **PHP**:PHP是一种广泛使用的开源服务器端脚本语言,尤其适合Web开发。它允许开发者创建动态、交互式网页。 2....

    多线程并发服务器(毕业设计)

    在多线程并发服务器中,C++提供了STL(标准模板库),其中的`&lt;thread&gt;`库为我们创建和管理线程提供了便利。同时,C++允许直接操作内存,这对于管理服务器的缓冲区(Buffer)至关重要。 2. **多线程技术**: 多线程...

    黑马程序员_张孝祥_Java多线程与并发库 视频+代码+资料

    根据给定文件的信息,我们可以提炼出以下关于Java多线程与并发库的相关知识点: ### Java多线程基础 1. **线程的概念**:在Java中,线程是程序执行流的基本单元。一个标准的Java应用程序至少有一个线程,即主...

    mtc_多线程并发拷贝程序.zip_linux_research965_showacj_多线程并发_拷贝

    总的来说,"mtc_多线程并发拷贝程序.zip"为我们提供了一个研究和学习多线程并发技术在Linux环境下应用的实例,通过对这个程序的学习和分析,开发者可以加深对C++11多线程编程的理解,并能将其应用于自己的项目中,...

Global site tag (gtag.js) - Google Analytics