广告
返回顶部
首页 > 资讯 > 精选 >浅谈多线程_让程序更高效的运行
  • 205
分享到

浅谈多线程_让程序更高效的运行

多线程更高 2023-05-31 00:05:43 205人浏览 八月长安
摘要

Java Thread 的一些认识:Java是抢占式线程,一个线程就是进程中单一的顺序控制流,单个进程可以拥有多个并发任务,其底层是切分CPU时间,多线程和多任务往往是使用多处理器系统的最合理方式进程可以看作一个程序或者一个应用;线程是进程

Java Thread 的一些认识:

Java是抢占式线程,一个线程就是进程中单一的顺序控制流,单个进程可以拥有多个并发任务,其底层是切分CPU时间,多线程和多任务往往是使用多处理器系统的最合理方式

进程可以看作一个程序或者一个应用;线程是进程中执行的一个任务,多个线程可以共享资源

一个Java 应用从main 方法开始运行,main 运行在一个线程内,也被称为 “主线程”,Runnable也可以理解为Task (任务)

JVM启动后,会创建一些守护线程来进行自身的常规管理(垃圾回收,终结处理),以及一个运行main函数的主线程

随着硬件水平的提高,多线程能使系统的运行效率得到大幅度的提高,同时异步操作也增加复杂度和各种并发问题

浅谈多线程_让程序更高效的运行

■ 线程 VS 进程

在一个已有进程中创建一个新线程比创建一个新进程快的多

终止一个线程比终止一个进程快的多

同一个进程内线程间切换比进程间切换更快

线程提供了不同的执行程序间通信的效率,同一个进程中的线程共享同一进程内存和文件,无序调用内核就可以互相通信,而进程间通信必须通过内核

■ 同步和异步

同步方法一旦开始,调用者必须等到方法调用返回之后,才能继续后续行为

无先后顺序,一旦开始,方法调用便立即返回,调用者就可以继续后续行为,一般为另一个线程执行

■ 阻塞和非阻塞

当一个线程占用临界区资源,其他线程也想要使用该资源就必须等待,等待会导致线程的挂起,也就是阻塞(线程变成阻塞状态)。

此时若占用资源的线程一直不愿意释放资源,那么其他所有阻塞在该临界区的线程都会被挂起,变成阻塞状态,不能正常工作,直到占用线程释放资源

非阻塞强调没有一个线程可以妨碍其他线程执行,所有线程都会尝试去做下一步工作

■ 临界资源与临界区

一般指的是公共共享资源,即可以被多个线程共享使用。但同一时间只能由一个线程去访问和操作临界区的资源,一旦临界区资源被一个线程占用,其他线程也想要使用该资源就必须等待,

就好比好多人想上大号,但只有一个坑,一个人占了坑,其他人就得排队等待喽

临界区可以认为是一段代码,线程会在该端代码中访问共享资源,因此临界区的界定标准就是是否访问共享(临界)资源(有点类似形成闭包的概念);一次只允许有一个程序(进程/线程)在该临界区中

■ 类定义

public class Thread implements Runnable {   private static native void reGISterNatives(); static {  registerNatives(); }

--结束END--

本文标题: 浅谈多线程_让程序更高效的运行

本文链接: https://www.lsjlt.com/news/222529.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 浅谈多线程_让程序更高效的运行
    Java Thread 的一些认识:Java是抢占式线程,一个线程就是进程中单一的顺序控制流,单个进程可以拥有多个并发任务,其底层是切分CPU时间,多线程和多任务往往是使用多处理器系统的最合理方式进程可以看作一个程序或者一个应用;线程是进程...
    99+
    2023-05-31
    多线程 更高
  • 让线程顺序运行的11种方法
    一、让线程顺序运行的11种方法 1 方法说明 使用线程的join方法使用主线程的join方法使用线程的wait方法使用线程的线程池方法使用线程的Condition(条件变量)方法使用CountDown...
    99+
    2023-09-26
    java
  • 揭秘Golang应用程序打包技巧:让你的代码更简化、运行更高效
    Golang打包技巧大揭秘:让你的应用程序更简洁、更高效,需要具体代码示例引言:Golang作为一种用于构建高效、可靠且可扩展的软件应用程序的开发语言,其打包技巧是程序员们必须掌握的重要知识之一。在本文中,我们将揭秘一些Golang打包的技...
    99+
    2023-12-29
    应用程序 Golang 打包技巧
  • 了解容器技术,让你的 Java 和 JavaScript 应用程序更加高效运行。
    随着云计算和微服务架构的不断发展,容器技术正在成为越来越流行的选择。作为一种轻量级的虚拟化技术,容器可以帮助开发人员更加高效地构建、部署和管理应用程序。本文将介绍容器技术及其在Java和JavaScript应用程序中的应用。 一、什么是容...
    99+
    2023-09-04
    容器 javascript linux
  • Java 异步编程:如何让你的程序更高效?
    在现代的软件开发中,程序运行速度的优化已经成为了一个非常重要的话题,而异步编程正是其中一个重要的解决方案。Java 作为一种非常流行的编程语言,也提供了丰富的异步编程工具,本文将介绍如何使用 Java 异步编程来提高程序的效率。 一、什么...
    99+
    2023-09-29
    异步编程 打包 load
  • Shell编程:如何让你的命令行更高效?
    Shell编程是一种强大的技能,可以让你在命令行中更高效地工作。通过编写Shell脚本,你可以自动化重复的任务,批量处理文件和数据,以及创建自定义命令和工具。本文将介绍一些Shell编程的基础知识和技巧,帮助你更好地利用命令行工具。 S...
    99+
    2023-08-16
    laravel 学习笔记 shell
  • 学习 Go 同步存储,让你的程序更高效
    Go 语言(Golang)作为一门高效、并发、并行的编程语言,一直受到广大开发者的青睐。在 Go 语言中,同步存储是一个非常重要的概念。本文将向您介绍 Go 语言中的同步存储,并通过演示代码,让您更好地理解和应用它。 同步存储是什么? 在...
    99+
    2023-10-19
    同步 存储 教程
  • Go 语言分布式编程教程:如何让你的程序更高效?
    随着互联网的迅速发展和数据量的不断增加,分布式系统的应用越来越广泛。作为一种高效、安全、简单易用的编程语言,Go 语言在分布式编程领域也得到了广泛应用。本篇文章将为大家介绍如何使用 Go 语言进行分布式编程,以及如何让你的程序更高效。 一...
    99+
    2023-08-26
    分布式 教程 面试
  • 让PHP程序员工作更高效的工具有哪些
    这篇文章主要讲解了“让PHP程序员工作更高效的工具有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“让PHP程序员工作更高效的工具有哪些”吧!Xdebug作为开发人员,睡得最踏实的事是对自...
    99+
    2023-06-17
  • PHP框架API异步编程:让您的应用程序更加高效?
    在当今的互联网时代,每个人都希望他们的应用程序更加快速、高效。而PHP作为一种流行的Web编程语言,已经成为许多Web应用程序的主要语言。PHP框架则是将PHP语言封装成类库的一种方式,它们提供了许多便捷的功能和方法,帮助我们更快地开发W...
    99+
    2023-10-12
    框架 api 异步编程
  • Java让多线程按顺序执行的几种方法
    目录在子线程中通过join()方法指定顺序在主线程中通过join()方法指定顺序通过倒数计时器CountDownLatch实现通过创建单一化线程池newSingleThreadExe...
    99+
    2022-11-13
  • 如何在 Windows 上利用 numy 算法进行 ASP 编程,让你的程序更加高效?
    如何在 Windows 上利用 NumPy 算法进行 ASP 编程,让你的程序更加高效? 在 ASP(Active Server Pages)编程中,NumPy 是一个非常强大的算法库,可以帮助你更加高效地处理大量的数据。NumPy 可以轻...
    99+
    2023-09-04
    windows 编程算法 numy
  • 让C程序更高效的10种方法分别是哪些
    让C程序更高效的10种方法分别是哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码之美,不仅在于为一个给定问题找到解决方案,而且还在代码的简单性、有效性、紧...
    99+
    2023-06-17
  • Windows 平台下,如何利用 numy 算法进行 ASP 编程,让程序更加高效?
    在 Windows 平台下进行 ASP 编程时,我们经常会遇到一些性能瓶颈。而利用 numy 算法可以帮助我们提高程序的效率,加快程序的运行速度。本文将介绍如何在 Windows 平台下,利用 numy 算法进行 ASP 编程,让程序更加高...
    99+
    2023-09-04
    windows 编程算法 numy
  • 在程序的开发中PHP如何提高程序的运行效率
    在程序的开发中PHP提高程序运行效率的方法:1.查询语句中尽量不使用select *。2.需要查什么数据用对应的字段,减少查询内容。3.少用子查询可用表连接代替。4.少用模糊查询。5.在数据表中创建索引。6.对程序中经常用到的数据生成缓存。...
    99+
    2022-10-05
  • 在java程序中怎么保证多线程的运行安全
    java程序中保证多线程运行安全的方式:使用安全类,比如 Java. util. concurrent 下的类。使用自动锁 synchronized。使用手动锁 Lock。保证一个或者多个操作在CPU执行的过程中不被中断。保证一个线程对共享...
    99+
    2022-10-16
  • 了解 ASP 容器中的数组编程算法,让你的程序更高效!
    ASP(Active Server Pages)容器中的数组编程算法是一种用于对数组进行操作的算法。它可以帮助开发人员更高效地编写程序,特别是在处理大量数据时。本文将介绍ASP容器中的数组编程算法,并提供一些实用的演示代码。 一、什么是AS...
    99+
    2023-10-25
    容器 编程算法 数组
  • Unix下的Go语言编程指南:如何让你的程序更加高效?
    Go语言是一种快速,高效的编程语言,可以在Unix系统上使用。Go语言的并发性和简单性使其成为一种非常流行的编程语言。 本文将介绍一些Unix下的Go语言编程技巧,以帮助你编写更高效的程序。 一、使用并发 Go语言最强大的特性之一就是并发...
    99+
    2023-09-26
    教程 响应 unix
  • 用PHP编写HTTP请求算法,让你的程序更加高效。
    PHP是一种广泛使用的编程语言,它拥有强大的网络编程能力。通过使用PHP编写HTTP请求算法,可以让你的程序更加高效。 HTTP请求是Web开发中的一个重要组成部分,它通常用于从Web服务器请求数据。PHP提供了多种方式来发送HTTP请求,...
    99+
    2023-06-16
    http 编程算法 编程算法
  • 重定向和同步:让您的Go程序在Linux上更高效
    在编写Go程序时,我们经常需要与外部进程或系统进行交互。在这个过程中,我们需要考虑如何处理输入和输出数据。如果我们不小心处理输入和输出数据,可能会导致程序变慢或出现其他问题。在Linux系统中,有两种方法可以处理输入和输出数据:重定向和同...
    99+
    2023-06-23
    linux 重定向 同步
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作