1.1 线程的创建和运行
在Java中,我们有2个方式创建线程:
1、通过直接继承thread类,然后覆盖run()方法。
2、构建一个实现Runnable接口的类, 然后创建一个thread类对象并传递Runnable对象作为构造参数
在下面的示例中,我们将使用两种方法来制作一个简单的程序,它能创建和运行10个线程。每一个线程能计算和输出1-10以内的乘法表。
实现Runnable接口:
public class Calculator implements Runnable{
private int number;
public Calculator(int number) {
this.number = number;
}
@Override
public void run() {
for(int i = 0; i < 10; i++) {
System.out.printf("%s: %d * %d = %d\n",Thread.currentThread().getName(),number,i,i*number);
}
}
}
public class Main {
public static void main(String[] args) {
for(int i = 0; i < 10; i++) {
Calculator cal = new Calculator(i);
Thread thread = new Thread(cal);
thread.start();
}
}
继承Thread类:
public class Calculator extends Thread{
private int number;
public Calculator(int number) {
this.number = number;
}
@Override
public void run() {
for(int i = 0; i < 10; i++) {
System.out.printf("%s: %d * %d = %d\n",Thread.currentThread().getName(),number,i,i*number);
}
}
public class Main {
public static void main(String[] args) {
for(int i = 0; i < 10; i++) {
Thread thread = new Calculator(i);
thread.start();
}
}
}
每个Java程序最少有一个执行线程。当你运行程序的时候, JVM运行负责调用main()方法的执行线程。
当调用Thread对象的start()方法时, 我们创建了另一个执行线程。在这些start()方法调出后,我们的程序就有了多个执行线程。
当全部的线程执行结束时(更具体点,所有非守护线程结束时),Java程序就结束了。如果初始线程(执行main()方法的主线程)运行结束,其他的线程还是会继续执行直到执行完成。但是如果某个线程调用System.exit()指示终结程序,那么全部的线程都会结束执行。
创建一个Thread类的对象不会创建新的执行线程。同样,调用实现Runnable接口的 run()方法也不会创建一个新的执行线程。只有调用start()方法才能创建一个新的执行线程。
1.2 线程信息的获取和设置
Thread有一些保存信息的属性:
ID:保存了线程的唯一标识符
Name:保存了线程的名称
Priority:保存了线程对象的优先级。优先级从0-10,1最低,10最高
Status:保存的线程的状态。在java中,一共有六种状态:new,runnable,running,blocked,waiting,time waiting,terminated
Thread thread = new Thread(runnable);
thread.getId()
thread.getName()
thread.setName
thread.getPriority()
threads[i].setPriority(Thread.MIN_PRIORITY);
thread.getState())
相关推荐
PowerThreading线程管理器是一款高效且强大的工具,专为优化多线程应用程序设计。它在软件开发领域中扮演着重要角色,特别是在处理并行计算和并发任务时,能够显著提高程序性能,减少资源浪费,确保系统稳定性。下面...
"线程管理" 本文将从实验三的线程管理中,总结出以下知识点: 一、线程管理的基本概念 * 线程管理是操作系统中的一种机制,用于管理和调度线程的执行。 * 线程可以处于不同的状态,包括running、ready、blocked等...
本文将深入探讨如何创建线程类以及如何进行线程管理,帮助你轻松掌握这一核心技能。 首先,我们来看看如何在Java中创建线程类。Java提供两种主要方式来创建线程:继承`Thread`类或实现`Runnable`接口。这两种方法都...
Pintos线程管理 Pintos Project 1: Threads是操作系统课程设计报告的实验三,主要介绍了Pintos线程管理的实现。以下是相关知识点的总结: 1. 优先级调度:在Pintos中,线程的优先级是通过priority成员变量来实现的...
本文将详细讲解如何使用C#语言来创建一个简单的进程与线程管理器,适合初学者入门。 首先,让我们了解基础概念。进程是操作系统中正在运行的一个程序实例,每个进程都有独立的内存空间,而线程则是进程内的执行单元...
在“stm32f103c8t6移植RT-Thread之线程管理”这个主题中,我们将探讨如何在STM32F103C8T6上创建和管理线程,以及线程如何与裸机程序相比提供更高级别的抽象和灵活性。 首先,我们需要了解RT-Thread的内核启动流程,...
在本实验中,我们将深入探讨Linux操作系统中的两个关键概念:多线程管理和多进程管理。这些概念对于理解和优化系统的性能至关重要,特别是在并发编程和系统资源调度方面。 首先,让我们了解多线程管理。在计算机...
线程管理器是计算机系统中一个至关重要的组件,特别是在多任务和并发编程环境中。它负责创建、调度、管理和销毁线程,确保系统资源的有效利用和程序的高效运行。线程是操作系统分配处理器时间的基本单元,允许多个...
使用Thread类创建线程需要手动地创建和管理线程,这需要开发者有充分的线程管理经验和知识。Thread类适合长作业和需要手动控制线程的场景。 例如,在一个图形用户界面程序中,我们可以使用Thread类来创建一个独立的...
线程管理是多线程编程中的关键环节,它涉及到如何创建、控制、同步以及销毁线程,以确保程序的高效性和正确性。在Java中,线程管理工具类可以帮助我们更方便地处理这些任务,避免复杂的并发问题。"线程管理工具类"如...
【线程管理模块升级】 在操作系统的设计和实现中,线程管理是核心组成部分之一,它涉及到线程的创建、销毁、调度以及同步互斥等问题。Nachos是一个开源的类UNIX操作系统,提供了一个教学和研究操作系统的平台。在这...
本篇文章将深入探讨C#中的单线程、多线程以及线程管理,帮助你理解和掌握这一核心概念。 ### 1. 单线程 在单线程环境中,程序按照预定的顺序执行,一次只能处理一个任务。C#的标准控制流(如`Console.ReadLine()`...
线程管理是操作系统中的核心概念,特别是在多任务和并发编程中。在本主题中,我们将深入探讨线程管理,特别是如何通过串口输入命令来控制线程的状态。串口通信是一种常见的设备间通信方式,而线程管理则涉及到程序...
在iOS开发中,线程管理是一项至关重要的技能,它关系到应用的性能和用户体验。本文将深入探讨iOS线程管理,特别是线程的创建和线程同步,这些都是开发者需要掌握的基本知识。 首先,我们来理解一下线程的概念。线程...
Java多线程是Java编程中的一个关键特性,它允许程序同时执行多个任务,极大地提高了程序的效率和响应性。在Java中,多线程可以通过实现Runnable接口或继承Thread类来创建。下面我们将深入探讨Java多线程的核心概念、...
线程管理是操作系统中的核心概念,特别是在多核处理器和并发编程环境下,理解并熟练掌握线程管理对于提高软件性能和优化资源使用至关重要。线程,作为程序执行的最小单元,可以独立于其他线程执行代码,共享同一进程...
操作系统进程(线程)管理课件
鸿蒙线程管理测试Demo是基于华为自研的鸿蒙操作系统(HarmonyOS)进行的一次实战演示,主要关注的是操作系统中的线程管理和调度。在计算机科学中,线程是程序执行的基本单元,它们共享同一进程的资源,通过并发执行...
在iOS和OS X开发中,Objective-C(OC)的多线程管理是至关重要的技能,它关乎应用的性能、响应速度以及资源利用效率。多线程允许程序同时执行多个任务,提升用户体验,尤其是在处理耗时操作如网络请求、大数据计算或...
在本文中,我们将深入探讨Apache Kafka的Java编程实践,特别是关注单线程和多线程在Kafka生产者与消费者中的应用,以及多线程管理器的实现。Apache Kafka是一个分布式流处理平台,广泛用于实时数据管道和消息传递。...