`
xiaofan_0204
  • 浏览: 126472 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java多线程(第一节课)

    博客分类:
  • Java
 
阅读更多
多线程的学习是每个Java程序员必备的知识!
多线程在实际开发中主要还是用来处理异步和同步程序,在提高程序的运行效率上也起到了不少的作用,但这并不是绝对的, 通常情况下,多线程是能够提高程序的运行效率的,按WINDOWS的比喻,一个CPU应该是100个工人. 100个工人挖山从一头挖,最多同时能20个人一起挖,其他80个人休息.(这是单线程) 如果两头挖,最多同时40人一起挖,60个人休息.
(这是多线程)所以多线程只能提高CPU的使用效率. 间接也提高了程序的运行效率,所以总结的来说,在资源有剩余的情况下,多线程能提高程序的运行效率但是在资料忙得情况下,多线程反而降低程序的运行效率。
废话少说,今天主要说说多线创建的几种方式
package com.huawei.interview;

public class TestThread {
	/**
	 * 通常情况下,多线程是能够提高程序的运行效率的,按WINDOWS的比喻,一个CPU应该是100个工人. 
     * 100个工人挖山从一头挖,最多同时能20个人一起挖,其他80个人休息.(这是单线程) 如果两头挖,最多同时40人一起挖,60个人休息.
     * (这是多线程)所以多线程只能提高CPU的使用效率. 间接也提高了程序的运行效率,所以总结的来说,在资源有剩余的情况下,
     * 多线程能提高程序的运行效率但是在资料忙得情况下,多线程反而降低程序的运行效率。
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println(Thread.currentThread().getName());
		
		/**
		 * 创建一个子线程,并写明该线程要执行的代码
		 */
		Thread thread1 = new Thread(){
			@Override
			public void run() {
				try {
					Thread.sleep(2000);
					System.out.println("Thread1 is start:" + Thread.currentThread().getName());
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			
		};
		thread1.start();
		
		/**
		 * 创建一个子线程,将子线程要运行的代码封装到一个独立的对象去.
		 * 如果指定了子线程要执行的代码,那么该子线程将执行自己的代码,
		 * 不会去执行线程对象的代码.如thread3所示
		 * 开发中通常使用这种方式,因为这种方式更能体现面向对象
		 * 的思想.
		 */
		Thread thread2 = new Thread(new Runnable() {
			@Override
			public void run() {
				try {
					Thread.sleep(2000);
					System.out.println("Thread2 is start:" + Thread.currentThread().getName());
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		});
		
		thread2.start();
		
		
		Thread thread3 = new Thread(new Runnable(){//匿名内部类的构造方法调用父类非默认的构造方法
			@Override
			public void run(){
				try {
					Thread.sleep(2000);
					System.out.println("interface is :" + Thread.currentThread().getName());
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}){
			@Override
			public void run() {
				try {
					Thread.sleep(2000);
					System.out.println("extend is :" + Thread.currentThread().getName());
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		};
		
		thread3.start();
		
		/**
		 * 多线程并不能提高程序运行的效率,
		 */
	}
}



Timer类(java中定时器的应用)
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

class MyTimer extends TimerTask {
	@Override
	public void run() {
		System.out.println("Hello world!");	
	}
}

public class TraditinalTimer {
	
	public static void main(String[] args) throws InterruptedException {
		
		/**
		 * 创建一个定时器,定义4秒后执行,之后没3秒执行一次
		 */
		new Timer().schedule(new MyTimer(), 4000, 3000);
		
		while(true){
			Thread.sleep(1000);
			System.out.println(new Date().getSeconds());
		}
	}
}
分享到:
评论

相关推荐

    Java多线程知识点总结

    Java多线程是Java编程语言中一个非常重要的概念,它允许开发者在一个程序中创建多个执行线程并行运行,以提高程序的执行效率和响应速度。在Java中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...

    JAVA多线程练习题答案。

    JAVA多线程练习题答案详解 在本文中,我们将对 JAVA 多线程练习题的答案进行详细的解释和分析。这些题目涵盖了 JAVA 多线程编程的基本概念和技术,包括线程的生命周期、线程同步、线程状态、线程优先级、线程安全等...

    汪文君JAVA多线程编程实战(完整不加密)

    《汪文君JAVA多线程编程实战》是一本专注于Java多线程编程的实战教程,由知名讲师汪文君倾力打造。这本书旨在帮助Java开发者深入理解和熟练掌握多线程编程技术,提升软件开发的效率和质量。在Java平台中,多线程是...

    JAVA多线程编程技术PDF

    这份“JAVA多线程编程技术PDF”是学习和掌握这一领域的经典资料,涵盖了多线程的全部知识点。 首先,多线程的核心概念包括线程的创建与启动。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。创建后...

    Java多线程编程技术

    《Java多线程编程核心技术》建议猿友们读两遍,因为其写得没有那么抽象,第一遍有些概念不是很理解,可以先跳过并记录起来,第一遍阅读的目的主要是了解整个架构。第二遍再慢慢品味,并贯穿全部是指点来思考,并将...

    Java多线程编程核心技术_完整版_java_

    本教程《Java多线程编程核心技术》将深入探讨这一主题。 一、线程的创建与启动 1. 继承Thread类:创建一个新的类,该类继承自Thread类,然后重写run()方法,最后创建该类的实例并调用start()方法启动线程。 2. 实现...

    java多线程设计模式详解(PDF及源码)

    (注意,本资源附带书中源代码可供参考) 多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中...

    Java多线程Executors批量执行数据实现限流

    Java多线程实现数据切割批量执行,实现限流操作。 java线程池Executors实现数据批量操作。 批量异步Executors处理数据,实现限流操作,QPS限流。 线程池调用第三方接口限流实现逻辑。 案例适合: 1.批量处理大数据。...

    java多线程学习

    在学习Java多线程的过程中,理解线程与进程的概念是非常基础且重要的一步。首先,进程是一个程序的执行实例,是操作系统资源分配的基本单位,具有独立的地址空间和运行状态。每个进程至少包含一个线程,我们称之为...

    【JAVA多线程】多线程编程核心技术学习资料

    这份"Java多线程编程核心技术学习资料"正是针对这一主题提供的一份宝贵的学习资源,适合初、中级Java开发人员提升自己的多线程编程技能。 在Java中,多线程主要通过以下方式实现: 1. 继承Thread类:创建一个新的...

    Java多线程聊天

    Java多线程聊天程序是一种利用Java编程语言实现的并发通信应用,它允许多个用户在同一时间进行交互式的对话。在这个程序中,多线程技术被用来处理并发用户输入和消息传递,确保系统的高效运行和响应性。下面将详细...

    java多线程实现TCP连接UDP聊天的聊天程序

    java多线程实现TCP连接UDP聊天的聊天程序

    java多线程并发

    ### Java多线程并发知识点详解 #### 一、Java多线程并发简介 在现代软件开发中,特别是在Java这样的主流编程语言中,多线程并发技术是提高程序执行效率、优化资源利用的关键手段之一。本篇文章将深入探讨Java中的...

    你的第一个java多线程应用

    使用java多线程编写的一个java类,从这个类中懂得贡献资源。

    第15讲 Java多线程.ppt

    Java多线程是Java语言中的一种编程方式,用于实现多任务的并发执行。Java多线程可以提高程序的效率和响应速度,使得程序更加灵活和高效。 进程与线程的概念: * 进程是操作系统管理的执行单位,多个进程可以同时...

    Java多线程网络爬虫(时光网为例)源码

    Java多线程网络爬虫是一种高效地从互联网上抓取数据的技术,特别是在处理大量网页时,多线程能显著提高爬虫的效率。本项目以时光网(Mtime)为例,展示如何使用Java实现这样的爬虫。时光网是一个提供电影、电视剧、...

    Java多线程断点下载Sample

    总之,Java多线程断点下载是一个涉及网络编程、并发控制和GUI交互的综合实践。通过理解并掌握这些知识点,开发者能够编写出高效且用户体验良好的下载工具。在实际开发中,我们还需要关注线程安全、资源管理等问题,...

    java多线程例子

    在第一个例子中,我们将继承 Thread 类来创建一个多线程类 TestThread。 ```java public class ThreadDemo { public static void main(String[] args) { new TestThread().start(); while(true) { System.out....

    《Java多线程设计模式》附源码中文教程 (PDF)

    多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中在代码的重要部分加上标注使读者更加容易...

Global site tag (gtag.js) - Google Analytics