多线程在项目中的使用场景
答:这个很简单,高并发有多种解决方法:1、从代码上分入手,必须得保证代码没有冗余,不要有废代码;2、从服务器上入手,高并发一台服务器并发量有限,我们可以采用多台服务器来分担压力;3、从存储方便入手,像我们一般高并发但是数据却可以不用存到数据库中的,我们就存在内存中,因为读内存的速度是...
答:这时就比较危险了,你要自己使用锁、信号量等机制来解决内存块的同时读写和同步等等。如果两个功能没有数据需要共享,或只有前后递进关系,建议使用多进程。如果两个功能需要同时对一块数据进行处理(例如需要对资源进行创建和老化删除),则需要使用多线程,这时可能需要使用锁等机制来控制线程冲突。
答:这种方式支持多继承,更适合复杂场景。使用Callable和FutureTask:Callable接口提供了有返回值和异常处理的能力,通过FutureTask包装Callable并启动线程,get()方法用于获取结果。这是任务执行者与消费者之间的高级协作方式。线程的生命周期分为五个阶段:新建、就绪、运行、阻塞和死亡。每个阶段都对应着线程在工厂...
答:IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linux更适合做high performance server,不过在多线程这个...
答:Unity3D中的多线程。线程是一个相当复杂的话题,但如果掌握了它,就可以从容的使用多个硬件处理器或处理很难划分管理数据块。如在场景中用A*算法进行大量的数据计算,变形网格中操作大量的顶点,持续的要运行上传数据到服务器,二维码识别等图像处理,如果同时你要处理很多事情或者与Unity的对象互动小可以用...
答:比如,常见的电商系统场景,同一时刻比如整点抢购时,会有海量用户同时访问服务器。如果不使用多线程处理,那基本凉凉……所以现在公司里开发基本都是多线程的。使用多线程确实提高了运行的效率。但与此同时,也会伴随着一些问题出现,让人很头痛。比如,需要特别注意数据的增删改情况,也就是线程安全问题...
答:使用场景:多个线程同时访问一块数据,也叫共享区。对于多个线程同时访问一块数据的时候,必须使用同步,否则可能会出现不安全的情况。比如数据库中的脏读。但是,多个线程同时访问一块数据,有一种情况不需要同步技术,那就是原子操作,也就是说操作系统在底层保证了操作要么全部做完,要么不做。异步:使用...
答:然而不幸的是,在很多应用场景中,多线程模型不仅不能提高效率,还会带来很多的负面问题。尤其是对于需要反复访问临界资源的应用场景中,由于同步与线程调度所引起的效率问题,会使得应用程序的运行效率与数据吞吐量大打折扣。 首先就是并发控制带来的效率问题。多线程模型必须现实地面对并发控制问题,否则将会...
答:而这种切换就叫上下文切换。从上面的描述我们可以知道,上下文切换,必然会出现之前的状态保持和启动,必然会导致性能的损耗,因此多线程的数量多就不一定快,也就说明了线程数量不是越多越好。那么怎么合理的设置线程数量呢?多线程任务分类 通常针对多线程一般分为两类场景:IO密集型:IO密集型通常指程序...
答:并不是真正的“同步”。当你理解这些的时候,你就初略的感觉什么时候该使用多线程机制,其实你的电脑每个程序都至少有一个主线程,那个管理器中的每一个进程,其实内部包含若干线程,每个时间点都是某个程序进程中的某个线程在运行。这些都是我的理解 ,还有不懂的请继续提出,我会尽量帮你解答。
网友评论:
姓龙17185744298:
在具体项目中,什么情况下用到了多线程 -
23041刘荣
: 在程序中如果正在计算,但是其他的窗口还是能动,说明用到了多线程
姓龙17185744298:
C++中程序在哪些场合应该使用多线程 -
23041刘荣
: 多线程的使用主要是用来处理程序“在一部分上会阻塞”,“在另一部分上需要持续运行”的场合.一般是根据需求,可以用多线程,事件触发,callback等方法达到.但是有一些方法是只有多线程能办到的就只有用多线程或者多进程来完成.举...
姓龙17185744298:
Java的线程在项目中一般会有什么具体的应用? -
23041刘荣
: java线程在项目中的应用场景如下:场景一:一个业务逻辑有很多次的循环,每次循环之间没有影响,比如验证1万条url路径是否存在,正常情况要循环1万次,逐个去验证每一条URL,这样效率会很低,假设验证一条需要1分钟,总共就需要1万...
姓龙17185744298:
Java 面试 真是的项目中 多线程主要用在哪 谢谢 -
23041刘荣
: 多线程主要用在网络开发上面,客户端对服务器的多种请求,多线程可以增加访问速度GUI的部分要用多线程
姓龙17185744298:
能不能简单描述一下你在java web开发中需要用到多线程编程的场景? -
23041刘荣
: 最典型的应用比如tomcat,tomcat内部采用的就是多线程,上百个客户端访问同一个web应用,tomcat接入后都是把后续的处理扔给一个新的线程来处理,这个新的线程最后调用到我们的servlet程序,比如doGet或者doPost方法.如果不采用多线...
姓龙17185744298:
谁能举几个使用多线程,多进程场景的例子 -
23041刘荣
: 一般多进程用于服务器比较多,多线程用于客户端比较多. 比如PHP服务器是典型的多进程. 游戏客户端,讯雷等下载工具,QQ等聊天工具,都是多线程的. 不过事情也不绝对,从任务管理器上看,谷歌浏览器是多进程的,而绝大多数windows服务器程序是多线程的.而Linux server用多进程非常多.
姓龙17185744298:
编程中j2ee中的多线程一般用在什么方面 -
23041刘荣
: 比如要在系统中实现类似Ping,端口扫描之类的功能,肯定会有ip地址段或许多端口需要扫描,这时你可以利用多线程技术来给每个线程分配任务,一般都用并发包里提供的线程池来完成~ 其实多线程用的地方很多,Servlet服务器的响应请求,Struts的Action就是最典型的例子~ 项目中的编程一般需要涉及多线程的并不多,因为很多底层东西都已经帮你实现好了,根据任务的实际需要来编写一些多线程的代码吧~
姓龙17185744298:
请问下对于.net来说 多线程一般用在什么地方 -
23041刘荣
: 如果你能实现下面的功能,那你不必使用多线程.一个窗体上有两个button,button1的代码功能是使form的text不断循环,类似如下代码 Dim i As Integer While True Me.Text = i i += 1 End While button2的代码功能是点击后弹出一个对话框.如果你能做到先点击1,后点击2,一点不感觉卡,而且form的text变化不中断,那就不需要使用多线程了.
姓龙17185744298:
在什么情况下要用到多线程 -
23041刘荣
: 在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent).而在多CPU系统中,可以让两个...
姓龙17185744298:
Java多线程在什么情况下用? -
23041刘荣
: 个人认为需要进行并发处理时使用多线程.例如服务器需要同时接受多个客户端连接,有无需实时等待的服务处理(像我们系统中短信发送任务,好几万条总不能一直等着结果吧,我只需第二天查看发送结果即可) 下面是比较官方的说法:1、 程序包含复杂的计算任务时 主要是利用多线程获取更多的CPU时间(资源).2、 处理速度较慢的外围设备 比如:打印时.再比如网络程序,涉及数据包的收发,时间因素不定.使用独立的线程处理这些任务,可使程序无需专门等待结果.3、 程序设计自身的需要 WINDOWS系统是基于消息循环的抢占式多任务系统,为使消息循环系统不至于阻塞,程序需要多个线程的来共同完成某些任务.