多线程的优点和代价

多线程优点:
http://ifeve.com/benefits/
1. 资源利用率更好
2. 程序设计在某些情况下更简单
3. 程序响应更快序响应更快
while(server is active){
listen for request
hand request to worker thread
}

多线程的代价:
http://ifeve.com/costs-of-multithreading/
1. 设计更复杂
在多线程访问共享数据的时候,这部分代码需要特别的注意。线程之间的交互往往非常复杂。
2. 上下文切换的开销
context switch
3. 增加资源消耗
需要占用操作系统中一些资源来管理线程

时间: 2024-11-29 06:11:53

多线程的优点和代价的相关文章

多线程的优点

原文:http://tutorials.jenkov.com/java-concurrency/benefits.html 作者:Jakob Jenkov        翻译:古圣昌            校对:欧振聪 尽管面临很多挑战,多线程有一些优点使得它一直被使用.这些优点是: 资源利用率更好 程序设计在某些情况下更简单 程序响应更快 资源利用率更好 想象一下,一个应用程序需要从本地文件系统中读取和处理文件的情景.比方说,从磁盘读取一个文件需要5秒,处理一个文件需要2秒.处理两个文件则需要

Java 并发/多线程教程(二)-多线程的优点

        本系列译自jakob jenkov的Java并发多线程教程,个人觉得很有收获.由于个人水平有限,不对之处还望矫正!      尽管多线程有诸多的挑战,但是多线程被广泛使用的原因有以下几点: 1.对资源的充分利用. 2.简化程序设计 3.响应的及时性 资源的充分利用        假设一个应用程序从本地文件系统中读取并处理一个文件,让我们来假设从硬盘读取文件需要5秒,处理文件需要两秒,那么处理两个文件则需要: 5秒 读取A文件 2秒 处理A文件 5秒 读取B文件 2秒 处理B文件

我们为何要使用多线程,它有什么优点?

其实在平时的开发中,很多程序员都不会去写线程,为啥?因为麻烦,其次是用到的地方并不多,除非逼不得已,大家都不会去写,毕竟写一天代码,拿一天工资,是吧? 麻烦归麻烦,但是多线程的优点不得不说: 1. 资源利用率提升,程序处理效率提高 打个比方:我们做上传图片的时候,在上传成功后往往会进行图片的处理,原图保存后,会再生成一张小图以作为一些应用的预览图,那么原图的处理就需要程序去读取再处理,假设读取需要花费1秒,处理需要2秒,现在有3张大图,所需要耗费的时间就是(1+2)X3=9秒,根据图片的不同,那

Java并发性和多线程介绍目录

Java并发性和多线程介绍 多线程的优点 多线程的代价 并发编程模型 如何创建并运行java线程 竞态条件与临界区 线程安全与共享资源 线程安全及不可变性 Java内存模型 JAVA同步块 线程通信 Java ThreadLocal Thread Signaling (未翻译) 死锁 避免死锁 饥饿和公平 嵌套管程锁死 Slipped Conditions Java中的锁 Java中的读/写锁 重入锁死 信号量 阻塞队列 线程池 CAS 剖析同步器 无阻塞算法 阿姆达尔定律 文章转自 并发编程网

java多线程编程

一.多线程的优缺点 多线程的优点: 1)资源利用率更好 2)程序设计在某些情况下更简单 3)程序响应更快 多线程的代价: 1)设计更复杂 虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂.在多线程访问共享数据的时候,这部分代码需要特别的注意.线程之间的交互往往非常复杂.不正确的线程同步产生的错误非常难以被发现,并且重现以修复. 2)上下文切换的开销 当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据

Java多线程实例_java

在上篇文章给大家介绍了java多线程的实现方式,通过本文给大家介绍java多线程实例,对java多线程感兴趣的朋友一起学习吧 首先给大家说下多线程的优缺点 多线程的优点: 1)资源利用率更好 2)程序设计在某些情况下更简单 3)程序响应更快 多线程的代价: 1)设计更复杂 虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂.在多线程访问共享数据的时候,这部分代码需要特别的注意.线程之间的交互往往非常复杂.不正确的线程同步产生的错误非常难以被发现,并且重现以修复. 2)上下文切

iOS开发多线程篇—多线程简单介绍

一.进程和线程 1.什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内 比如同时打开QQ.Xcode,系统就会分别启动2个进程 通过"活动监视器"可以查看Mac系统中所开启的进程 2.什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程) 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行 3.线程的串行 1个线程中任务的执

多线程填写treeview控件(vb.net)

treeview|多线程|控件 功能:把选定文件夹下的dll.子文件夹和子文件夹中的dll填写到窗体的treeview控件上. 缺点:窗体简单,代码有些混乱,线程之间的调用可能没有到最优化. 实现:imagelist中的图片需要自己重新定义. 多线程的优点:可以及时响应用户的操作,不至于产生"未响应"的尴尬:设计合理(结合需求)的话,可使软件的性能提高. 多线程的编写:结构合理.注意同步. 以上是我对这个例程和多线程的个人体会,如有不妥之处,还请大家批评指正. Imports Syst

简单对比C#程序中的单线程与多线程设计_C#教程

多线程概念 1.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括多个线程.线程是操作系统分配处理器时间的基本单位 2.应用程序域是指进行错误隔离和安全隔离,在CLR中运行,每个程序域都是单个线程启动,但该程序域中的代码可以创建附加应用程序域和附加线程 3.多线程的优点在于一个线程阻塞的时候,CUP可以运行其他的线程而不需要等待,这样大大的提高了程序的执行效率.而缺点在于线程需要占用内存,线程越多占用的内存就多,多线程需要协调和管理,所以需要占用CPU时间以便跟踪线程,线程之间对共享