精华内容
下载资源
问答
  • 多线程的作用以及什么地方用到多线程?

    万次阅读 多人点赞 2016-07-31 13:09:12
    多线程的作用以及什么地方用到多线程?

    1>.多线程的作用:可以解决负载均衡问题,充分利用CPU的资源.为了提高CPU的使用率,才用多线程的方式去同时完成几件事情而不互相干扰

    2>.大多情况下,要用到多线程的主要是需要处理大量的IO操作时或处理的情况需要耗时大量的时间等等,比如:读写文件,视频图像采集-处理-显示-保存等

    3>.ios中多线程的方法主要有三种:1.NSThread 2.NSOperation 3.GCD

    4>.多线程中的区别有:

    NSOperatin与GCD之间的区别:

    a.GCD是iOS4.0推出的,主要针对多核CPU做了优化,是C语言技术

    (1).GCD将任务(block)添加到队列中(串行/并行/全局/主队列),并且以同步/异步的方式执行任务的函数

    (2).GCD提供一些NSOperation不具备的功能

    1. 一次性执行

    2.延迟执行

    3.调度组

    b.NSOperation

    (1).NSOperation是iOS2.0推出的,iOS4之后重写了NSOperation

    (2).NSOperation将操作(异步任务)添加到队列(并发队列),就会执行指定操作的函数

    (3).NSOperation 里提供的方便的操作

    1.最大并发数

    2.队列的暂停/继续

    3.取消所有的操作

    4.指定操作之间的依赖关系(GCD可以同时实现)


    GCD与NSThread的区别

    1>.NSThread通过@selected指定要执行的方法,代码分散

    2>.GCD通过block指定要执行的代码,代码集中,所有的代码写在一起 让代码更加简单,易于阅读与维护

    3>.使用GCD不需要管理线程的创建/销毁/复用的过程,程序员不用管理线程的生命周期

    4>.如果要开多个线程NSThread必须实例化多个线程对象

    5>.NSThread靠NSObject的分类方法实现的线程间通讯

    展开全文
  • 简述多线程的作用以及什么地方用到多线程? OC实现多线程的方法有哪些?

    简述多线程的作用以及什么地方会用到多线程? OC实现多线程的方法有哪些?

    (1)、多线程的作用:可以解决负载均衡问题,充分利用cpu资源 。为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而互不干扰,

    (2)、大多情况下,要用到多线程的主要是需要处理大量的IO操作时或处理的情况需要花大量的时间等等,比如:读写文件、视频图像的采集、处理、显示、保存等。

    (3)、iOS中多线程的方法主要有三种:1、NSThread。2、NSOperation。3、GCD。

    iOS中多线程有哪几种?各自之间有什么区别?这个问题,毋庸置疑,面试必问!!!

    1).NSOperation与GCD的区别:

    GCD与NSThread的区别:

    1). NSThread 通过 @selector 指定要执行的方法,代码分散

    2).GCD 通过 block 指定要执行的代码,代码集中, 所有的代码写在一起的,让代码更加简单,易于阅读和维护

    3).使用 GCD 不需要管理线程的创建/销毁/复用的过程!程序员不用关心线程的生命周期

    4).如果要开多个线程 NSThread 必须实例化多个线程对象

    5).NSThread 靠 NSObject 的分类方法实现的线程间通讯,



    展开全文
  • 问:能不能简单描述一下你在java web开发中需要用到多线程编程的场景? 回答一: 最典型的如: 1、用户注册完成送大礼包/积分之类,且积分等也是另一个系统并比较耗时;且这类任务即使失败也不是特别重要的。 2、...

    问:能不能简单描述一下你在java web开发中需要用到多线程编程的场景?

    回答一:

    最典型的如:
    1、用户注册完成送大礼包/积分之类,且积分等也是另一个系统并比较耗时;且这类任务即使失败也不是特别重要的。
    2、后台线程:比如定期执行一些特殊任务,如定期更新配置文件,任务调度(如quartz),一些监控用于定期信息采集等。

    回答二:

    最典型的应用比如tomcat,tomcat内部采用的就是多线程,上百个客户端访问同一个web应用,tomcat接入后都是把后续的处理扔给一个新的线程来处理,这个新的线程最后调用到我们的servlet程序,比如doGet或者doPost方法。

    如果不采用多线程机制,上百个人同时访问一个web应用的时候,tomcat就得排队串行处理了,那样客户端根本是无法忍受那种访问速度的。

    还有就是需要异步处理的时候,需要使用多线程。比如task a和task b要并行处理,单个线程只能串行处理,先做完task a然后再做task b。如果想要多个task同时执行的话,就必须为每个task分配一个线程,然后通过java虚拟机的线程调度,来同时执行多个任务。比如你的CPU是多核心的话,就可以让一个CPU执行一个线程。如果只有一个CPU的话,底层是按照分时复用的原则,各个线程按照时间片来获得CPU资源。

    注:如果在执行异步操作的时候,我们直接new Thread,开启一个新的线程,其实不太明智,因为如果有大量的请求过来,那样会创建很多个task线程,会内存溢出。
    优化的方法,使用spring框架自带的线程池 @Async 来解决该问题
    此处附上@Async的使用方法

    https://blog.csdn.net/weixin_39528789/article/details/80769112

    回答三:

    特别耗时的操作,如备份数据库,可以开个线程执行备份,然后执行返回,前台不断向后台询问线程执行状态

    问:JAVA项目中哪些场景需要用到多线程,深感迷茫,请使用过的高手指点。

    答:

    场景一:一个业务逻辑有很多次的循环,每次循环之间没有影响,比如验证1万条url路径是否存在,正常情况要循环1万次,逐个去验证每一条URL,这样效率会很低,假设验证一条需要1分钟,总共就需要1万分钟,有点恐怖。这时可以用多线程,将1万条URL分成50等份,开50个线程,没个线程只需验证200条,这样所有的线程执行完是远小于1万分钟的。

    场景二:需要知道一个任务的执行进度,比如我们常看到的进度条,实现方式可以是在任务中加入一个整型属性变量(这样不同方法可以共享),任务执行一定程度就给变量值加1,另外开一个线程按时间间隔不断去访问这个变量,并反馈给用户。

    总之使用多线程就是为了充分利用cpu的资源,提高程序执行效率,当你发现一个业务逻辑执行效率特别低,耗时特别长,就可以考虑使用多线程。不过CPU执行哪个线程的时间和顺序是不确定的,即使设置了线程的优先级,因此使用多线程的风险也是比较大的,会出现很多预料不到的问题,一定要多熟悉概念,多构造不同的场景去测试才能够掌握!

    展开全文
  • 1, 多线程的作用:可以解决负载均衡问题,充分利用CPU的资源,为了提高Cpu的使用,采用多线程的方法去同时完成几件事情而互不干扰 2. 大多数的情况下, 使用多线程 主要是需要处理大量的IO操作或处理的情况需要花大量...
    1, 多线程的作用:可以解决负载均衡问题,充分利用CPU的资源,为了提高Cpu的使用,采用多线程的方法去同时完成几件事情而互不干扰
    2. 大多数的情况下, 使用多线程 主要是需要处理大量的IO操作或处理的情况需要花大量的时间等;
    3. iOS 有三种主要的方法创建线程:1. NSTread, 2.NSOperationQueue, 3, GCD
    4. 解决方案:使用线程锁,锁是线程同步工具的基础, 锁可以让你很容易保护代码中一大块区域以便你可以确保代码的正确性, 
         使用POSIX互斥锁, 使用NSLock类 使用@synchronized指令等
    5, 回到主线程的方法: dispa_async(dispatch_get_main_queue(), ^{});
        作用:主线程是现实UI界面, 子线程多数是进行处理数据的


    好处:
    1、使用线程可以把程序中占据时间长的任务放到后台去处理,如图片、视频的下载
    2、发挥多核处理器的优势,并发执行让系统运行的更快、更流畅,用户体验更好
    缺点:
    1、大量的线程降低代码的可读性,
    2、更多的线程需要更多的内存空间
    3、当多个线程对同一个资源出现争夺的时候要注意线程安全的问题。

    同步:一个线程要等待上一个线程执行完之后才能执行当前的线程,生活中的例子(上厕所)。
    异步:同时去做两件或者多件事。比如边听歌边看报。 
    GCD串行队列,GCD当中的屏障dispatch_barrier,NSOperationQueue设置最大并发数为1
    展开全文
  • JAVA项目中哪些场景需要用到多线程

    千次阅读 2018-12-15 09:15:40
    这时可以用多线程,将1万条URL分成50等份,开50个线程,没个线程只需验证200条,这样所有的线程执行完是远小于1万分钟的。 场景二:需要知道一个任务的执行进度,比如我们常看到的进度条,实现...
  • 万字图解Java多线程

    万次阅读 多人点赞 2020-09-06 14:45:07
    java多线程我个人觉得是javaSe中最难的一部分,我以前也是感觉学会了,但是真正有多线程的需求却不知道怎么下手,实际上还是对多线程这块知识了解不深刻,不知道多线程api的应用场景,不知道多线程的运行流程等等,...
  • 多线程简单应用场景

    千次阅读 2017-09-07 15:35:06
    多线程简单应用场景注:最近想研究多线程,网上搜索资料,发现多线程的资料很多,但是应用场景却很少,大部分都是指出了怎么开启多线程,却没有一个多线程结合实际场景的举例.比如说最经典的多线程就是多窗口卖票Model,...
  • netty中的多线程应用

    2018-09-30 13:33:08
    netty中的多线程并发应用
  • Java多线程

    万次阅读 多人点赞 2021-06-11 16:28:49
    Java多线程Java多线程线程的创建线程常见方法线程的状态线程的优先级守护线程线程组Java线程池线程池的创建线程池的参数线程池的使用线程不安全问题Java中的锁synchronized同步方法synchronized同步语句块...
  • Java多线程超详解

    万次阅读 多人点赞 2019-06-11 01:00:30
    随着计算机的配置越来越高,我们需要将进程进一步优化,细分为线程,充分提高图形化界面的多线程的开发。这就要求对线程的掌握很彻底。 那么话不多说,今天本帅将记录自己线程的学习。 线程的相关API //获取当前...
  • Java多线程学习(吐血超详细总结)

    万次阅读 多人点赞 2015-03-14 13:13:17
    本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。
  • 这个问题很纠结,一般前台是基本不会用到的,除非像实时聊天窗口那种东西; 应该是网站管理后台可能会用到,在csdn看到wapit的一个回复很有意思: ...使用多线程, 你就可以把这个耗时的循环搞到后
  • java多线程高级应用

    千次阅读 2017-03-02 16:15:38
    java所谓多线程,顾名思义,就是多道线程执行线索,那么为什么要多线程呢?如果你的部分代码在执行某个i/o操作而受阻,那么程序的其他部分也不能执行,这样就严重的浪费了cpu,多线程机制就是为解决这个问题。 多...
  • GDB 调试多进程或者多线程应用

    千次阅读 2017-10-22 13:57:27
    GitHub [GDB 调试多进程或者多线程应用 ](http://blog.csdn.net/gatieme) | AderXCoding/system/tools/gdb/attach_on_fork |本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可, 转载请...
  • 多线程的理论知识还是了解了一些,但是实际没有多少使用的地方,这次摘抄一些使用多线程地方,希望以后多多学习,在项目种多多使用; 1.发短信验证码场景: 2.更新操作 3.后台同步信息 4.仅仅只做一个插入...
  • 1.一般业务,web-service-dao-sql基本上用不到多线程 2.数据量很大(1000w级别,TB级别)的I/O操作,可以考虑多线程 3.比如 a.自己做并发测试的时候,模拟3000个并发模拟 b.多线程下单抢单,加入支持5000人的并发...
  • java多线程哪些实际的应用场景?

    万次阅读 多人点赞 2017-10-17 10:10:33
    多线程使用的主要目的在于: 1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。 2、...
  • java多线程的简单应用

    千次阅读 2018-05-09 15:44:12
    java多线程(后来也叫做并发)是java学习中一种新的思想,当然,并发在java中的学习,只是很基础很浅显的部分,并发更多的涉及操作系统等很多范畴的知识,TIJ中说可以将并发拿出来当做一门单独的学科来学习。...
  • >>号外:关注“Java精选”公众号,菜单栏->聚合->干货分享,回复关键词领取视频资料、开源项目。多线程使用的主要目的在于:1、吞吐量:你做WEB,容器帮你做了多...
  • VB.NET多线程应用

    千次阅读 2011-03-31 10:07:00
    VB.NET多线程应用 <br /> 开发者一直要求微软为VB加入更多的多线程功能,对于VB.NET也是这样。VB6已经支持建立多线程的EXE、DLL和OCX。不过使用多线程这个词语,可能也不太确切。因此VB6仅支持运行多个...
  • 多线程文章目录

    2021-01-21 16:27:43
    以下文章基本上保证真实可信,如...Java多线程②——多线程知识梳理 有助于了解线程池相关的知识、包括线程池执行逻辑、常用方法; 以及java为我们提供常用的线程池和任务调度ScheduledExecutorService以及工作窃取For
  • 浅谈C++中的多线程(三):Qt中的多线程应用

    千次阅读 多人点赞 2019-03-24 23:40:58
    本篇文章围绕以下几个问题展开: ...前三个问题已经在之前两篇文章中讲解,本篇文章作为结尾篇来讲解最后一个问题:Qt中的多线程应用。 四.Qt中的多线程应用 1.引入 程序由单线程到多线程,就像以前是一个人干...
  • 线程是轻量级的进程。使用线程能提供应用系统的效率。为了使用多线程需要引入System命名空间中的Threading命名空间。System.Threading命名空间包含需要使用多线程地方。现在让我们来看第一个程序。
  • 多任务与多线程

    千次阅读 热门讨论 2017-12-03 13:50:17
    对于这个概念,有好多不理解的概念,首先就是多任务与多线程,那么到底什么是多任务与多线程呢?通过各种查阅,下面说一下我的简单理解。多任务多任务指的是一台电脑上可同时运行多个应用程序(也叫多个进程),是一...
  • JAVA 多线程

    千次阅读 2021-04-03 21:19:04
    多线程 在看多线程之前先来看看必要的一些东西: 线程与进程 进程: 是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间。 线程: 是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,...
  • C#中构建多线程应用程序

    千次阅读 2015-02-04 10:24:52
    这其中一个重要的方面就是构建多线程应用程序(因为不使用多线程的话,开发人员就不能充分发挥多核计算机的强大性能)。  本文针对的是构建基于单核计算机的多线程应用程序,目的在于介绍多线程相关的基本概念、...
  • Qt多线程方法1 继承QThread 1写一个继承于QThread的线程 2 QThread的几个函数quitexitterminate函数 3 正确的终止一个线程 4 如何正确启动一个线程 41正确的启动一个全局线程和UI一直存在的线程 42 如何启动一...
  • 多线程有些了解,但是不太清楚具体的应用场景,能简单说一下你遇到的多线程编程的场景吗?回答一:最典型的如:1、用户注册完成送大礼包/积分之类,且积分等也是另一个系统并比较耗时;且这类任务即使失败也不是...
  • 工作1年了,没接触过多线程,有的说法现在 多核处理器比较...平时能接触到多线程开发的朋友,能说说什么时候能用到多线程么?举些例子吧!! 我接触的代码都是 web层--> service层 -->dao --> sql。没见过多线程。。
  • 参考文档: https://blog.csdn.net/u012661010/article/details/76696309

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 355,397
精华内容 142,158
关键字:

哪些地方用到多线程