在java编程时,经常会碰到多线程编程,那么到底我们什么时候应该使用多线程呢?
一高人如是说:
写道
多线程是提高cpu的利用率,只有当cpu空闲时间比较多情况下,才能体现出多线程的优势,linux下采用top命令,cpu(s)可以查看 x% id id是idle的缩写,空闲的意思,就是说空闲的cpu的比例,如果这个值比较高,采用多线程时,才更有效果。
top命令使用实例:
top - 17:04:19 up 1:56, 4 users, load average: 0.39, 0.40, 0.33
Tasks: 93 total, 4 running, 89 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.4%us, 5.2%sy, 0.0%ni, 82.2%id, 0.0%wa, 2.6%hi, 9.6%si, 0.0%st
Mem: 1034456k total, 1019500k used, 14956k free, 79572k buffers
Swap: 2096472k total, 0k used, 2096472k free, 769248k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4609 wusx 20 0 9920 1604 1036 S 3.9 0.2 1:52.06 sshd
5874 wusx 20 0 14220 10m 2348 R 3.6 1.0 2:07.28 ssh
5873 wusx 20 0 6500 1452 1136 R 3.0 0.1 1:30.11 scp
13234 root 20 0 2304 1004 796 R 0.7 0.1 0:00.07 top
2852 root 15 -5 0 0 0 S 0.3 0.0 0:02.83 kjournald
1 root 20 0 2068 616 528 S 0.0 0.1 0:01.89 init
2 root 15 -5 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
6 root 15 -5 0 0 0 S 0.0 0.0 0:00.03 events/0
7 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 work_on_cpu/0
8 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
112 root 15 -5 0 0 0 S 0.0 0.0 0:00.67 kblockd/0
114 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
115 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kacpi_notify
229 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue
231 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 ksuspend_usbd
237 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
240 root 15 -5 0 0 0 S 0.0 0.0 0:00.01 kseriod
291 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
292 root 20 0 0 0 0 S 0.0 0.0 0:01.41 pdflush
293 root 15 -5 0 0 0 S 0.0 0.0 0:00.18 kswapd0
294 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0
546 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kpsmoused
549 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 hid_compat
607 root 15 -5 0 0 0 S 0.0 0.0 0:00.03 mpt_poll_0
分享到:
相关推荐
什么是线程,多线程,什么时候使用多线程? 线程,就是CPU执行的最小单元,当然线程需要依赖进程而活着,线程不能独立存在; 每一个进程都会至少有一条主线程,就是主函数所在的线程。 那多线程是什么呢,...
最近用多线程用的比较多自己走了一些弯路,分享出来希望大家少走弯路,C#中的多线程有两个重载,一个是不带参数的,一个是带参数的,但是即便是带参数的多线程也不支持泛型,这使得使用泛型参数多线程的时候很不方便...
• 异步和多线程有什么关联 WinForm多线程编程篇 • 我的多线程WinForm程序老是抛出InvalidOperationException ,怎么解决? • Invoke,BeginInvoke干什么用的,内部是怎么实现的 • 每个线程都有消息队列吗? ...
• 异步和多线程有什么关联 WinForm多线程编程篇 • 我的多线程WinForm程序老是抛出InvalidOperationException ,怎么解决? • Invoke,BeginInvoke干什么用的,内部是怎么实现的 • 每个线程都有消息队列吗? ...
在某些特殊情况下需要用到多线程然而又要使其具备顺序性,这种时候就有了一个特殊的场景那就是多线程顺序执行,在现在VS2015中Task自带了顺序执行的方法,但在此之前的旧项目中如果需要使用多线程顺序执行该怎么办呢...
那么什么时候用多线程呢? 首先要知道: io操作不占用CPU 计算操作占CPU,像2+5=5 Python的多线程不适合CPU密集操作型的任务,适合io密集操作型的任务,例如:SocketServer 如果现在再有CPU密集操作型的任务,那该...
个人总结,面试,常用多进程,多线程技术总结,工作中常用到的
最近用多线程用的比较多自己走了一些弯路,分享出来希望大家少走弯路,C#中的多线程有两个重载,一个是不带参数的,一个是带参数的,但是即便是带参数的多线程也不支持泛型,这使得使用泛型参数多线程的时候很不方便...
易语言多线程许可证的理解使用源码,多线程许可证的理解使用,公共参数增加,公共参数减少
多线程操作窗口源码 功能介绍: 多线程是一种提高程序运行效率和性能的常用技术。 随着我们学习工作的深入,在编程中或多或少会涉及到 需要多线程的情况。多数时候,我们的操作模式是后台 线程中处理数据,计算...
一张图方便理解和掌握java 多线程之间通信的实质 java 多线程 其实就是每个线程都拥有自己的内存空间,多线程之间的通信,比例A线程修改了主内存(main方法的线程)变量,需要把A线程修改的结果同步到主线程中,...
C语言的开始设计,并未设计多线程的机制...在编译C的多线程时候,一方面必须指定Linux C语言线程库多线程库pthread,才可以正确编译(例如:gcc test.c -o test -lpthread);另一方面要包含有关线程头文件#include 。
在多线程中,有时候使用MessageBox.Show方法弹出对话框,弹出的Messagebox不是模态的,不能满足我的要求.所以有了这段代码.
多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。...
多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。...
在Python中可使用的多线程模块主要有两个,thread和threading模块。 threading模块允许创建和管理线程,提供了更多的同步原语。threading模块中最常用的类是Thread。 Python多线程爬虫 多线程爬虫代码 ...
吧,Windows在复制文件的时候,有个动画,是在复制文件过程中进行的,也就是一边复制文件,一边播放动画,这个就是很简单的多线程,如果没有动画,复制一个大文件的时候,我们知 道计算机是死机了,还是仍然在复制呢???多线程...
什么时候使用“多线程”?在程序设计中使用“多线程”有什么好处呢?很多刚入职的程序员也对“多线程”感到非常的好奇,认为它很“高大上”。本文对“多线程”进行了简单的介绍,并给出了其C代码的实现框架。
《MFC多线程的创建,包括工作线程和用户界面线程》全面讲解MFC多线程的创建,界面多线程与工作者多线程,多线程的起源、继承与派生,两多线程之间的区别与相同点,定时器与多线程的关系与异同(定时器是定时优先抢占...