`

java多线程-概念和作用

阅读更多

一:线程概念

      线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程

      一个进程至少包含一个线程,如果一个进程包含2个以上,表示该进程是多线程操作,那就存在资源共享的问题,多线程争夺资源的问题,所以才有了锁机制的存在,防止多个线程打架

二:多线程的作用

1.为什么会有多线程:

    1)由于早起的操作系统dos里,一个进程只有一个线程,随着机器的发展,发现一个进程如果存在多个线程来处理,这将大大利用期cup,让cup充分利用,也可以让一个进程的程序让多个线程来跑,这将大大加快代码的执行时间。

    2)实际上多线程的工作方式:表面上一个进程包含多个线程,代码由多个线程同时进行,但实际到了cup那里,cpu的调度不会出现多个同时调度,实际到了cup还是单个调度,只是中间有个时间间隔,这个时间间隔来调用不同的线程,eg:10ms执行这个线程,然后执行别的线程,最后回来又重新执行现在的线程,通过时间差来保证多线程的工作,由于时间间隔非常短,所以我们感觉多线程是并发进行的,这才有了多线程跑期来远比单线程快很多的道理。

  3)多线程带来的困扰:上面都说了很多好处,那他有没有坏处呢,答案是肯定的,有坏处,多线程共享一个进程的资源(主要还是内存的资源),资源的分配怎么保证大家都能共享,这是第一个问题;第二个问题:如果程序里存在读写并存的情况,很有可能我的写和读也是并行的,这样就会出现数据的误差,所以想了个办法,这样的情况,我把代码加个锁,只有保证我数据写完了,我才把锁交出来,一个时间段里,我只有一把锁来维持,用完了再交给别人,防止数据的读和写被同时修改的可能。

  4)多线程应该注意的地方:只有你充分理解了多线程在jvm里的工作方式,你才可以大胆的使用它的好处,否则,还是谨慎一点,别丢了西瓜捡了芝麻。

分享到:
评论

相关推荐

    Java多线程-多线程相关概念

    Java多线程技术是编程中不可...总之,Java多线程技术是提高程序效率和响应性的关键手段,理解和掌握相关概念及实践技巧对于Java开发者至关重要。正确地利用多线程,可以有效应对高并发场景,提升软件的性能和用户体验。

    Java多线程-知识点梳理和总结-超详细-面试知识点.docx

    本文从Java多线程的基本概念开始,逐步深入到Java多线程的高级话题,涵盖了Java多线程的所有方面,包括volatile关键字、Java内存模型、Happens-Before关系、synchronized关键字、ConcurrentHashMap、...

    java 多线程-线程通信实例讲解

    Java 多线程是并发编程中的重要概念,它允许程序同时执行多个任务,提升系统效率。线程通信是多线程编程中一个关键的组成部分,它确保线程间能有效地协同工作,避免竞争条件和死锁等问题。在Java中,线程通信主要...

    java多线程的讲解和实战

    Java多线程是Java编程中的重要概念,尤其在如今的多核处理器环境下,理解并熟练掌握多线程技术对于提高程序性能和响应速度至关重要。本资料详细讲解了Java多线程的原理,并提供了丰富的实战代码,非常适合Java初学者...

    java多线程ppt

    java多线程PPT 多线程基本概念 创建线程的方式 线程的挂起与唤醒 多线程问题

    Java-Thread-Affinity,将Java线程绑定到给定的内核.zip

    Java线程亲和性(Thread Affinity)是一个高级并发编程概念,主要涉及到操作系统调度和硬件资源的优化。在多核处理器系统中,线程亲和性允许开发者指定某个线程应该运行在哪个特定的处理器核心上,从而提高性能、...

    java 多线程操作数据库

    在当今高度并发的应用环境中,Java多线程技术被广泛应用于处理数据库操作,以提升系统的响应速度和处理能力。本文将基于一个具体的Java多线程操作数据库的应用程序,深入探讨其背后的原理、实现细节以及潜在的挑战。...

    WHUT-java多线程实验-第三周-文件上传和下载.zip

    在“WHUT-java多线程实验-第三周-文件上传和下载.zip”这个实验中,我们将重点探讨如何在多线程环境中实现文件的上传和下载功能。这个实验基于IntelliJ IDEA开发环境,它是一个流行的Java集成开发环境,提供了丰富的...

    Java多线程知识点总结

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

    java基础--11.多线程-1

    本节我们将深入探讨Java中的多线程概念,包括其重要性、创建方法以及相关机制。 一、多线程的重要性 1. 提高资源利用率:多线程可以充分利用CPU的空闲时间,避免了单线程中等待IO操作时的资源浪费。 2. 提升程序...

    java多线程源码-source

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了系统的效率和响应性。在Java中,实现多线程主要有两种方式:继承Thread类和实现Runnable接口。接下来,我们将深入探讨这两个方法以及相关的...

    Java多线程-Thread类的常用结构及线程优先级

    Java多线程编程是开发高并发应用的基础,其中Thread类是实现多线程的核心类。本文将详细解析Thread类的常用结构以及线程优先级。 一、Thread类的常用结构 1. 线程中的构造器 - `Thread()`:创建一个没有指定名称...

    java多线程经典案例

    Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提升了程序的效率和性能。在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键...

    java多线程Demo

    Java多线程是Java编程中的一个重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应速度。在Java中,实现多线程有两种主要方式:继承Thread类和实现Runnable接口。 1. 继承Thread类: 当我们创建一个新...

    Java的多线程-线程间的通信.doc

    在Java多线程编程中,线程间的通信是非常重要的概念,用于协调多个并发执行的任务。线程的状态转换是理解线程通信的基础,主要包括四个状态:新(New)、可执行(Runnable)、死亡(Dead)和停滞(Blocked)。新状态...

    java多线程进度条

    首先,理解Java多线程的基本概念至关重要。Java通过Thread类和Runnable接口来支持多线程。创建一个新线程通常有两种方式:继承Thread类并重写run()方法,或者实现Runnable接口并提供run()方法。在run()方法中编写...

    java多线程编程-详细炒作例子

    Java多线程编程是复杂且强大的功能,它能够显著提升程序的性能和响应能力,尤其是在处理I/O密集型任务和需要并行计算的场景下。然而,线程的管理和调度也带来了同步、死锁等挑战,因此在享受多线程带来的好处的同时...

    java多线程分页查询

    ### Java多线程分页查询知识点详解 #### 一、背景与需求分析 在实际的软件开发过程中,尤其是在处理大量数据时,如何高效地进行数据查询成为了一个关键问题。例如,在一个用户众多的社交平台上,当用户需要查看...

    JAVA-JavaThreadProgramming-Sams.zip_JAVA 设计_java 多线程_java 线程_多线程

    总之,Java多线程编程涉及到的概念和技巧广泛,理解并掌握这些知识对于任何Java开发者来说都至关重要,无论是在桌面应用、服务器端开发还是移动应用领域。通过学习本资料,开发者可以深入理解如何在Java中有效地利用...

    java 多线程并发实例

    本文将基于"java 多线程并发实例"这个主题,深入探讨Java中的多线程并发概念及其应用。 首先,我们要了解Java中的线程。线程是程序执行的基本单元,每个线程都有自己的程序计数器、虚拟机栈、本地方法栈,而共享堆...

Global site tag (gtag.js) - Google Analytics