`

传统线程技术回顾

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

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

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

/**
 * ClassName:TraditionalThread
 * 
 * @author songjy
 * @version 1.0
 * @since v1.0
 * @Date 2013-8-15 下午8:51:31
 */

public class TraditionalThread {

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

	public static void main(String[] args) {
		
		/*********线程一*********/
		Thread thread1 = new Thread() {

			@Override
			public void run() {

				while (true) {
					try {
						Thread.sleep(500);
					} catch (InterruptedException e) {
						log.error(e.getMessage(), e);
					}
					log.info("11:" + Thread.currentThread().getName());
					log.info("12:" + this.getName());// 不推荐
				}

			}

		};
		thread1.start();

		/*********线程二*********/
		Thread thread2 = new Thread(new Runnable() {

			@Override
			public void run() {
				while (true) {
					try {
						Thread.sleep(500);
					} catch (InterruptedException e) {
						log.error(e.getMessage(), e);
					}
					log.info("21:" + Thread.currentThread().getName());
					// log.info("22:" + this.getName());// 此处不能使用this
				}
			}
		});

		thread2.start();

		/*********线程三*********/
		//猜猜看本线程打印出的是【31Runnable:+线程名】还是【31+线程名】
		new Thread(new Runnable(){

			@Override
			public void run() {
				while (true) {
					try {
						Thread.sleep(500);
					} catch (InterruptedException e) {
						log.error(e.getMessage(), e);
					}
					log.info("31Runnable:" + Thread.currentThread().getName());
				}
			}}) {

			@Override
			public void run() {//运行的是此方法,因为子类覆盖(重写)了父类方法,运行的将是子类方法,这是面向对象的一个重要特性
				while (true) {
					try {
						Thread.sleep(500);
					} catch (InterruptedException e) {
						log.error(e.getMessage(), e);
					}
					log.info("31:" + Thread.currentThread().getName());
				}
			}

		}.start();
	}
	//多线程不一定执行效率快,好比一个人做馒头给3个桌面上人吃,在一个桌面上做自然比给每个人一个桌面上做一个又跑到另一个桌面上快
	//多线程下载是抢资源,服务器为一个线程分配20k,我多开线程下载,自然分配的带宽就多了
}


引自
http://down.51cto.com/data/443405
分享到:
评论

相关推荐

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

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

    java加强笔记

    传统线程技术回顾 - Java中的线程可以通过继承`Thread`类或实现`Runnable`接口来创建。 ##### 2. 传统定时器技术回顾 - 定时器(`Timer`)类可以用来定期执行任务。 ##### 3. 传统线程互斥技术 - 线程间的互斥通常...

    Linux下多线程的视频图像平滑度评价算法 (1).pdf

    为了解决这一问题,本文提出了一种基于Linux操作系统和多线程技术的视频图像平滑度评价算法。 在Linux环境下,多线程技术可以充分利用多核处理器的计算能力,提高程序并行处理效率。通过将视频处理任务分解成多个...

    服务器产品年度回顾.docx

    未来,随着下一代安腾处理器“Poulson”的推出,预计将采用更为先进的32nm CMOS工艺,配备8个核心并支持超线程技术,提供高达50MB的缓存容量,以及更高的处理能力和内存带宽,这或许会为安腾系列带来新的转机。...

    基于多核的程序优化技术.ppt

    **编译回顾**: 编译是将高级语言转换为机器语言的过程,包括词法分析、语法分析、语义分析、生成中间代码和代码优化五个阶段。代码优化旨在提高程序运行效率,包括时间效率(减少运行时间)和空间效率(减少内存...

    35C10K和C1000K回顾1

    传统的同步阻塞I/O模型,每个请求对应一个进程或线程,当请求数量增大时,会导致大量的上下文切换、资源浪费和性能瓶颈。 为了解决C10K问题,主要关注两个核心挑战:一是如何在一个线程内处理多个网络I/O请求,二是...

    基于多核程序优化技术PPT课件.pptx

    编译回顾中提到,编译是将高级语言转换为机器语言的过程,包括词法分析、语法分析、语义分析、生成中间代码和代码优化五个阶段。代码优化是为了提高程序运行效率,包括时间效率(减少运行时间)和空间效率(减少内存...

    Web应用中的海量数据访问缓存技术.pdf

    文章首先回顾了现有的数据访问缓存技术,并针对其存在的局限性,提出了一种新的框架模型,旨在通过整合多种缓存策略,优化硬件资源利用,避免系统过载,同时提升数据的重用性和减少数据库访问负担,从而显著增强数据...

    多核加速串行程序技术综述

    回顾微处理器的发展历程,从早期的简单结构到复杂的流水线设计,再到RISC体系结构的简化,以及后续复杂度的再次提升,这一螺旋式的演变反映了技术和需求的不断变化。进入多核时代,半导体工艺的进步、时钟频率的制约...

    JAVA外文文献翻译基于Java技术的Web应用设计模型的比较研究.pdf

    通过这些详细的技术点,本文给出了一个关于基于Java技术的Web应用设计模型比较研究的全面知识回顾。这些知识点的涵盖为Java Web开发人员提供了一个理论和实践相结合的丰富资源,有助于他们设计、实现和测试性能更优...

    武汉大学《多核架构及编程技术》教学PPT

    2. **并行编程基础**:学会如何在多核平台上编写高效的并行程序,熟悉并行编程的基本概念和技术,如多线程编程、OpenMP等。 3. **程序优化与调试**:掌握使用专业工具对并行程序进行优化和调试的方法,提高程序的...

    不可磨灭的记忆CPU发展史经典回顾.docx

    随着技术的进步,诸如铜连线技术也被引入,取代了传统的铝连线,以提高导电性能和芯片效率。 CPU的性能不仅取决于其内部的晶体管数量,还受到诸如时钟频率、缓存大小、架构设计等因素的影响。例如,Intel的Pentium ...

    UNIX 高级教程系统技术内幕

    1.3 回顾与展望 1.3.1 UNIX 好在哪里 1.3.2 UNIX 的误区在哪儿 1.4 本书的范围 1.5 参考文献 第2 章 进程与内核(17) 2.1 简介 2.2 模式.空间和上下文 2.3 进程抽象 2.3.1 进程状态 2.3.2 进程上下文 2.3.3 用户凭证 ...

    网络蚂蚁1.25

    虽然现在网络蚂蚁已经有更新的版本,但这个老版本对于回顾互联网历史和技术发展具有一定的参考价值。 总之,网络蚂蚁1.25作为一款经典的下载工具,它在断点续传、多线程下载和跨浏览器支持等方面的创新,对后来的...

    异步开发框架

    在深入探讨异步开发框架之前,我们先来回顾一下传统的同步阻塞模式存在的主要问题: 1. **并发请求数受限**:每个连接都需要一个独立的线程来进行处理,导致处理能力受限。 2. **连接数受限**:对于大规模并发连接...

    基于Java回顾之网络通信的应用分析

    NIO引入了选择器(Selector)和通道(Channel)的概念,允许单线程同时处理多个连接,提高了服务器的并发性能。例如,使用Selector可以监控多个SocketChannel,当某个通道准备好进行读写时,Selector会通知应用程序...

Global site tag (gtag.js) - Google Analytics