多线程的学习是每个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中,线程的生命周期包含五个基本状态,分别是新建状态(New)、就绪...
JAVA多线程练习题答案详解 在本文中,我们将对 JAVA 多线程练习题的答案进行详细的解释和分析。这些题目涵盖了 JAVA 多线程编程的基本概念和技术,包括线程的生命周期、线程同步、线程状态、线程优先级、线程安全等...
《汪文君JAVA多线程编程实战》是一本专注于Java多线程编程的实战教程,由知名讲师汪文君倾力打造。这本书旨在帮助Java开发者深入理解和熟练掌握多线程编程技术,提升软件开发的效率和质量。在Java平台中,多线程是...
这份“JAVA多线程编程技术PDF”是学习和掌握这一领域的经典资料,涵盖了多线程的全部知识点。 首先,多线程的核心概念包括线程的创建与启动。在Java中,可以通过实现Runnable接口或继承Thread类来创建线程。创建后...
《Java多线程编程核心技术》建议猿友们读两遍,因为其写得没有那么抽象,第一遍有些概念不是很理解,可以先跳过并记录起来,第一遍阅读的目的主要是了解整个架构。第二遍再慢慢品味,并贯穿全部是指点来思考,并将...
本教程《Java多线程编程核心技术》将深入探讨这一主题。 一、线程的创建与启动 1. 继承Thread类:创建一个新的类,该类继承自Thread类,然后重写run()方法,最后创建该类的实例并调用start()方法启动线程。 2. 实现...
(注意,本资源附带书中源代码可供参考) 多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中...
Java多线程实现数据切割批量执行,实现限流操作。 java线程池Executors实现数据批量操作。 批量异步Executors处理数据,实现限流操作,QPS限流。 线程池调用第三方接口限流实现逻辑。 案例适合: 1.批量处理大数据。...
在学习Java多线程的过程中,理解线程与进程的概念是非常基础且重要的一步。首先,进程是一个程序的执行实例,是操作系统资源分配的基本单位,具有独立的地址空间和运行状态。每个进程至少包含一个线程,我们称之为...
这份"Java多线程编程核心技术学习资料"正是针对这一主题提供的一份宝贵的学习资源,适合初、中级Java开发人员提升自己的多线程编程技能。 在Java中,多线程主要通过以下方式实现: 1. 继承Thread类:创建一个新的...
Java多线程聊天程序是一种利用Java编程语言实现的并发通信应用,它允许多个用户在同一时间进行交互式的对话。在这个程序中,多线程技术被用来处理并发用户输入和消息传递,确保系统的高效运行和响应性。下面将详细...
java多线程实现TCP连接UDP聊天的聊天程序
### Java多线程并发知识点详解 #### 一、Java多线程并发简介 在现代软件开发中,特别是在Java这样的主流编程语言中,多线程并发技术是提高程序执行效率、优化资源利用的关键手段之一。本篇文章将深入探讨Java中的...
使用java多线程编写的一个java类,从这个类中懂得贡献资源。
Java多线程是Java语言中的一种编程方式,用于实现多任务的并发执行。Java多线程可以提高程序的效率和响应速度,使得程序更加灵活和高效。 进程与线程的概念: * 进程是操作系统管理的执行单位,多个进程可以同时...
Java多线程网络爬虫是一种高效地从互联网上抓取数据的技术,特别是在处理大量网页时,多线程能显著提高爬虫的效率。本项目以时光网(Mtime)为例,展示如何使用Java实现这样的爬虫。时光网是一个提供电影、电视剧、...
总之,Java多线程断点下载是一个涉及网络编程、并发控制和GUI交互的综合实践。通过理解并掌握这些知识点,开发者能够编写出高效且用户体验良好的下载工具。在实际开发中,我们还需要关注线程安全、资源管理等问题,...
在第一个例子中,我们将继承 Thread 类来创建一个多线程类 TestThread。 ```java public class ThreadDemo { public static void main(String[] args) { new TestThread().start(); while(true) { System.out....
多线程与并发处理是程序设计好坏优劣的重要课题,本书通过浅显易懂的文字与实例来介绍Java线程相关的设计模式概念,并且通过实际的Java程序范例和 UML图示来一一解说,书中在代码的重要部分加上标注使读者更加容易...