什么是线程多线程技术

多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个的线程,进而提升整体处理性能。

什么是线程多线程技术-Worktile社区

一、多线程技术定义

多线程(multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个的线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。

简单讲,1个进程中可以开启多条线程,每条线程可以并行(同时)执行不同的任务,多线程技术可以提高程序的执行效率,比如同时开启3条线程分别下载3个文件(分别是文件A、文件B、文件C)。

二、多线程的实现

1、通过继承Thread实现多线程

  • 在Java中负责实现线程功能的类是java.lang.Thread 类。
  • 可以通过创建 Thread的实例来创建新的线程。
  • 每个线程都是通过某个特定的Thread对象所对应的方法run( )来完成其操作的,方法run( )称为线程体。
  • 通过调用Thread类的start()方法来启动一个线程。

由于在Java中一个类只能继承少数的一个类,所以这种继承Thread类实现多线程的方法具有很大的缺陷。

实现代码:

继承类:

package cn.sxt.ma.thread;
/**
 * 多线程
 * 	通过继承Thread实现多线程
 */
public class MyThread extends Thread{
	public void run () {
		for (int i = 0; i < 10; i++) {
			System.out.println("MyThread_______"+i);
		}
	}
}

测试类:

package cn.sxt.ma.thread;
/**
 * 	通过继承Thread实现多线程	
 * 		会由于CPU的分配出现抢占资源的情况
 */
public class Test {
	public static void main(String[] args) {
		MyThread mt = new MyThread();
		//调用start方法启动线程。start方法会调用线程中的run方法
		mt.start();
		for (int i = 0; i < 10; i++) {
			System.out.println("main--------"+i);
		}
	}
}

2、通过Runnable接口实现多线程

通过实现Runnable接口实现多线程解决了通过继承Thread类这种方式的缺陷。即实现Runnable接口的同时还可以继承某个类。步骤:

  • 编写类实现 Runnable 接口
  • 实现 run()方法
  • 通过 Thread 类的 start()方法启动线程

实现Runnable接口的类:

package cn.sxt.ma.runnable;
/**
 * 	实现类实现Runnable接口
 * 
 */
public class MyRunnable implements Runnable{

	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			System.out.println("MyRunnable-------"+i);
		}
	}
}

测试类:

package cn.sxt.ma.runnable;
/**
 * 	实现Rnnnable接口完成多线程、这种方式线程之间抢占资源更加激烈
 * 
 */
public class Test {
	public static void main(String[] args) {
		MyRunnable rb = new MyRunnable();
		//Runnable中没有start方法,所以要借助Thread的对象来使用start方法
		Thread t = new Thread(rb);
		t.start();
		//主线程中的循环
		for (int i = 0; i < 10; i++) {
			System.out.println("main--------"+i);
		}
	}
}

三、多线程技术的功能

  1. 多线程技术可以加快程序的运行速度,使程序的响应速度更快,因为用户界面可以在进行其它工作的同时一直处于活动状态。
  2. 可以把占据长时间的程序中的任务放到后台去处理,同时执行其他操作,提高效率。
  3. 当前没有进行处理的任务时可以将处理器时间让给其它任务。
  4. 可以让同一个程序的不同部分并发执行,释放一些珍贵的资源如内存占用等。
  5. 可以分别设置各个任务的优先级以优化性能。

延伸阅读

线程池

线程执行一个任务时,流程是:创建线程—创建任务—执行任务—关闭线程。而其实创建线程和关闭线程都是很耗时的,可能你的任务只有两三行代码,但是你就要创建一个线程,因为并发的线程很多,所以频繁的大量创建线程,会大大降低系统的效率。而线程池就是一个容纳多个线程的容器,池中的线程可以反复调用,省去了频繁创建线程对象的操作,节省了大量的时间和资源。

文章标题:什么是线程多线程技术,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34871

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年1月9日 上午7:29
下一篇 2023年1月9日 上午7:47

相关推荐

  • 美业什么叫品项管理

    品项管理在美业中指的是对美容、美发、美甲等服务品种进行有效地规划、组织、执行和监控,以实现美业机构服务质量、顾客满意度的提升和经营效益的最大化。1、明确每项服务的特点并对其定价;2、分析顾客需求与市场趋势以更新和优化服务内容;3、制定标准化流程以保证服务质量;4、进行销售数据分析以优化品项结构。 尤…

    2024年1月8日
    23400
  • 软件项目管理过程组是哪些

    软件项目管理过程组包括:一、启动过程组;二、规划过程组;三、执行过程组;四、监控过程组;五、收尾过程组。启动过程组意味着正式开始一个项目,或者是开始一个项目中的新阶段,包括识别项目相关方和制定项目章程两个子过程。 一、启动过程组 启动过程组意味着正式开始一个项目,或者是开始一个项目中的新阶段,包括识…

    2023年4月16日
    33800
  • oa有什么作用

    标题:OA的作用 OA(办公自动化系统)功能多样,关键在于提高工作效率、优化流程和增进沟通。1、实现信息资源的集成和优化管理,2、流程自动化加快决策,3、协同工作增进内部沟通,4、远程访问提升灵活性。在第一点中,OA系统让各类文档和数据可以在一个统一的平台上进行存储和管理,极大地节省了员工查找和处理…

    2024年1月11日
    14200
  • 什么是DevOps

    DevOps为一种强化软件开发与运维团队合作的文化与实践方式,它要求快速、高效地交付且维护软件产品,并不断迭代。1. 快速交付软件产品,该点能缩短产品从开发到部署的周期;2. 提升运维效率,通过自动化手段优化传统运维流程;3. 强化团队协作,打破开发与运维的壁垒,实现协同工作;4. 持续迭代与反馈,…

    2024年1月4日
    18800
  • devops知识体系有什么组成

    摘要 DevOps知识体系围绕着高效软件交付和运营的目标,展开具体构成内容。1、持续集成与持续部署(CI/CD)、2、自动化测试、3、配置管理、4、监控与日志管理、5、团队合作与文化构成。其中,持续集成与持续部署作为大幅提升软件开发效率和质量的关键手段,通过自动化构建、测试和部署流程,显著减少人工错…

    2024年3月26日
    1400
  • 如何编写管理制度

    概括地说,编写管理制度需遵循精细化、具体可行的原则,涵盖以下要点:1、明确目标和宗旨;2、设计完备的流程图;3、规定具体的执行标准;4、确保灵活性和可更新性;5、明确奖惩措施;6、进行彻底的测试和评审。 其中,设计完备的流程图对于管理制度的有效实施极为关键,因为它提供了一个清晰的视角,让管理者和员工…

    2024年1月9日
    25200
  • 为什么版本控制在协同编辑文档中是必要的

    版本控制系统是协同编辑文档的关键因素之一,它可以确保文档的整合性和团队成员的效率。主体答案是:版本控制在协同编辑文档中之所以必要,是因为它提供了1、实时跟踪和记录更改、2、降低冲突的风险、3、保证回滚能力、4、提升团队合作效率。通过这些功能,版本控制可以确保每个版本都有详细的历史记录,减少编辑过程中…

    2023年11月20日
    28500
  • 为什么MVCC可以解决幻读

    为什么MVCC可以解决幻读的主要原因有:1、版本链机制;2、读写隔离;3、使用间隙锁;4、具有高并发性。MVCC通过版本链(Version Chain)来实现。版本链能记录每一个数据行的修改版本,每次对数据的修改都会在版本链上增加一个新版本,而旧版本数据并不会立即删除,而是保存在版本链中。在一个事务…

    2023年7月12日
    51500
  • 用户权限管理系统设计

    用户权限管理系统设计的关键在于确保系统安全、用户数据保护以及灵活的权限配置1、 提供角色基础的权限控制、2、 实现细粒度的访问控制、3、 支持权限的扩展与管理以及4、 保障权限变更的审计追踪。具体到一点,角色基础的权限控制意味着系统将用户划分为不同的角色,每个角色根据其职责被分配固定的权限。这种方法…

    2024年1月9日
    23500
  • 如何进行项目的质量管理

    项目的质量管理关键在于确保产品或服务满足预期要求与标准。有效的质量管理依赖于三个要素:1、质量规划、2、质量保证、3、质量控制。项目质量的保障需要精密计划、系统管理以及持续监控。质量规划是构筑项目质量基石的过程,其关键在于确保项目活动得以优化、风险被识别并且缓解措施得当。 在质量规划阶段,项目经理与…

    2024年1月8日
    18100

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部