`

传统线程技术回顾

阅读更多
/**
 * 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线程...

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

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

    不可磨灭的记忆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作为一款经典的下载工具,它在断点续传、多线程下载和跨浏览器支持等方面的创新,对后来的...

    P2pProject

    5. **多线程编程**:P2P应用通常涉及多个并发任务,如接收消息、发送消息、处理请求等,这就需要多线程或多进程技术来保证程序的高效运行。.NET框架提供了System.Threading命名空间支持多线程编程。 6. **错误处理...

    搜索引擎深度搜索系统

    多线程技术允许系统同时处理多个任务,这意味着在采集过程中,它能够快速地从不同的网页和数据源抓取信息,节省了大量的时间。对于需要处理大量数据的企业来说,这种并行处理能力至关重要,可以显著提高数据采集的...

    ACCP 5.0 java 转ACCP 6.0 桥接课程

    - 前端技术升级:可能从传统的HTML/CSS/JavaScript转向更现代的前端框架,如React、Vue.js或Angular。 - 数据库技术:可能涵盖了NoSQL数据库,如MongoDB,以及大数据处理框架Hadoop或Spark。 - 移动应用开发:...

    企业级iOS应用开发实战(全部章节)

    核心技术篇(7~17章),系统深入地讲解了网络、XML和JSON、用户数据保存、安全、多媒体、绘图、动画、多点触摸和手势、GPS、重力感应、本地化、多线程、并行编程、通知、通讯簿等与企业级应用相关的核心技术特性,...

    企业级iOS应用开发实战(高清版)

    核心技术篇(7~17章),系统深入地讲解了网络、XML和JSON、用户数据保存、安全、多媒体、绘图、动画、多点触摸和手势、GPS、重力感应、本地化、多线程、并行编程、通知、通讯簿等与企业级应用相关的核心技术特性,...

    JAVA核心技术卷一 基础知识10版

    《JAVA核心技术卷一 基础知识10版》是Java开发者的重要参考资料,它全面而深入地涵盖...《JAVA核心技术卷一 基础知识10版》作为权威的参考书籍,适合初学者入门,也适合作为经验丰富的开发者回顾和巩固基础知识的资料。

    网络象棋,VC6.0编写

    2. **多线程处理**:为了保证游戏的流畅性,通常会使用多线程技术。主线程负责图形界面的更新,而其他线程处理网络通信和棋局逻辑,这样可以避免阻塞用户界面,提高用户体验。 3. **对象模型设计**:在C++中,面向...

    数据采集系统的软件设计知识.pdf

    在编程实现过程中,充分利用LabWindows/CVI提供的多线程技术,保证了数据采集和处理的并行性,提升了系统的响应速度和处理效率。经过测试,该软件表现出良好的界面显示效果和用户操作体验,程序设计逻辑清晰,性能...

    CPU组织与结构PPT

    在“CPU发展史”这一部分,我们可以回顾从早期的单核处理器到现在的多核、超线程处理器的发展历程。随着科技的进步,CPU的计算能力、能效比以及并行处理能力得到了显著提升,例如从Intel的8086到如今的酷睿i9等高端...

    优秀下载工具“网际快车”

    虽然随着宽带速度的提升和新型下载工具的涌现,网际快车可能不再是首选,但其在下载领域留下的经典技术和良好口碑依然值得我们回顾和学习。对于那些怀念过去或者对网络下载有特殊需求的用户,网际快车依然是一个可靠...

    flashget-1.0.3-0_cn.tar.gz

    传统的下载方式通常采用单线程,速度受限于网络环境。而FlashGet通过将大文件分割成多个部分,同时进行下载,显著提升了下载速度,尤其是在网络条件不稳定的情况下,多线程下载能有效避免因某个部分下载失败而导致...

    程序员历年试题(1990--2008)

    下面,我们将详细探讨这些知识点,并对各个时期的编程技术发展进行回顾。 在1990年代初,计算机科学正处于快速发展阶段,C语言是主流的编程语言,试题中可能会包含大量的C语言基础概念、语法和编程技巧。考生需要...

    毕业论文jsp1068小区物业管理系统ssh.doc

    14. **数字化、网络化、电子化、虚拟化**:这些概念体现了信息化社会的趋势,物业管理系统的开发就是这一趋势的具体体现,通过网络技术将传统物业管理转化为在线服务。 综上所述,该毕业论文详细阐述了一个基于JAVA...

    2020-Java面试宝典Beta8.0.zip

    "JAVA核心知识点整理.pdf"可能是对以上各个主题的精炼总结,帮助读者快速回顾和巩固Java的核心概念和技术。通过深入学习和实践这些内容,Java开发者将更有可能在面试中脱颖而出,成功获得理想职位。

    毕业论文ssm011线上旅行信息管理系统ssm+vue论文.docx

    - **Java技术**:作为后端开发的主要语言,提供面向对象的编程模型,支持多线程和网络通信,适合构建大型分布式系统。 - **MySQL数据库**:开源、关系型数据库,适用于存储和管理大量结构化数据,具有高效率和稳定...

Global site tag (gtag.js) - Google Analytics